#P13994. [ucup] Illuminati

[ucup] Illuminati

题目描述

矮人 Illuminati 正在准备跨年夜灯光秀。会有 NN 支蜡烛排成一条直线。每支蜡烛只有两种状态:点亮(1)或未点亮(0)。

灯光秀一共有 KK 个回合。每两个相邻回合之间,Illuminati 会把蜡烛重新移动位置。为了便于记忆,他希望每次移动方式都完全相同

形式化地说,他会选择一个 NN 元排列 PP。在每个回合结束后,他会把原来位于位置 ii 的蜡烛移动到位置 P(i)P(i)

现在你已知每个回合的点亮情况:给出 KK 个长度为 NN 的二进制串,第 tt 个串表示第 tt 回合时每个位置的蜡烛是否点亮。请判断是否存在一个排列 PP 能满足这些回合之间的移动关系;若存在,输出字典序最小的那一个 PP(从 11 开始编号)。

输入格式

第一行两个正整数 N,KN, K。 接下来 KK 行,每行一个长度为 NN 的二进制串:1 表示该位置的蜡烛点亮,0 表示未点亮。第 tt 行对应第 tt 个回合。

输出格式

若存在满足条件的排列 PP

  • 第一行输出 YES
  • 第二行输出该排列(从 11 开始),即 P(1),P(2),,P(N)P(1),P(2),\dots,P(N)

否则输出一行 NO

数据范围

1N,K1000001 \le N, K \le 100000,且 NK1000000N \cdot K \le 1000000

3 3
100
010
001
YES
2 3 1
4 2
0011
0110
YES
1 4 2 3