CCC '01 S5 - Post's Correspondence Problem


Submit solution

Points: 1
Time limit: 1.0s
Memory limit: 256M

Problem type
Allowed languages
Python
Canadian Computing Competition: 2001 Stage 1, Senior #5

Let \(A\) and \(B\) be two sequences of non-empty strings:

\[\displaystyle \begin{align*} A &= (a_1, a_2, \dots, a_n) \\ B &= (b_1, b_2, \dots, b_n) \end{align*}\]

Let \(m\) be a positive integer. Does there exist a sequence of integers \(i_1, i_2, \dots, i_k\) such that \(m > k > 0\) and \(a_{i_1} a_{i_2} \dots a_{i_k} = b_{i_1} b_{i_2} \dots b_{i_k}\) ?

For example, if \(A = (a, abaaa, ab)\) and \(B = (aaa, ab, b)\) , then the required sequence of integers is \((2, 1, 1, 3)\) giving \(abaaaaaab = abaaaaaab\) .

Input Specification

The first two lines of input will contain \(m\) and \(n\) respectively, and \(m \times n \le 40\) . The next \(2n\) lines contain in order the elements of \(A\) followed by the elements of \(B\) . Each string is at most \(20\) characters.

Output Specification

If a solution exists, print \(k\) on a line by itself, followed by the integer sequence in order, one element per line. Otherwise, print a single line containing No solution. .

Sample Input 1

7
3
a
abaaa
ab
aaa
ab
b

Sample Output 1

4
2
1
1
3

Sample Input 2

10
3
abc
def
ghi
bcd
efg
hia

Sample Output 2

No solution.

Comments

There are no comments at the moment.