#P1288. Sly Number

Sly Number

描述

让我们来考虑所谓的“诡秘数”,它由一个包含NN个整数的数组AA表示,这些整数取自集合{0,1,2}\{0, 1, 2\}。例如,A[0]=1A[0] = 1A[1]=1A[1] = 1A[2]=0A[2] = 0A[3]=2A[3] = 2。若A[0]=1A[0] = 1并且对于I=1,2,,N1I = 1, 2, \cdots, N - 1,都有A[I]=0A[I] = 0,那么这个诡秘数被称为“壹数(ONE)”。

考虑对两个诡秘数AABB进行如下被称为“星乘”的运算:

$$C[k] = \sum_{i = 0}^{k} A[i] \times B[k - i] + \sum_{i = k + 1}^{N - 1} A[i] \times B[N + k - i] $$

这里CC是该运算的结果,同样也以数组形式呈现——但不一定是诡秘数。我们用<><*>符号来表示这个运算。

此外,对于“星乘”运算的结果还有取模运算:

(CmodQ)[i]=C[i]modQ(C \bmod Q)[i] = C[i] \bmod Q

其中QQ是一个正整数。

我们给定一个诡秘数AA和一个模数QQ。我们需要找到这样一个“逆诡秘数”BB

(AB)modQ=ONE(A * B) \bmod Q = \text{ONE}

输入

输入包含KK个文本格式的数据集。该文件的第一行包含测试用例的数量KK。每个测试用例由两行组成。第一行包含两个用空格分隔的整数:QQ2Q1002 \leq Q \leq 100)和NN5N505 \leq N \leq 50)。第二行包含NN个取自集合{0,1,2}\{0, 1, 2\}的整数,用空格分隔,这些整数表示诡秘数AA

输出

输出应该打印在标准输出上。它应该包含KK行——每个测试用例占一行。如果存在解,该行应该包含字符串“A solution can be found”。如果不存在解,该行应该包含字符串“No solution”。

输入数据

2
2 5
1 0 1 0 1
65 8
1 2 2 2 1 1 2 2

输出数据

A solution can be found
No solution

提示

在第一个示例中,一个可能的逆诡秘数可以是<00111><0 0 1 1 1>

来源

2002年东南欧竞赛