В этой задаче мы будем работать с матрицами над полем остатков по модулю 2. У Гарри как раз есть такая матрица размера n × n.
Пусть R задаёт некоторое подмножество строк матрицы, а C задаёт подмножество её столбцов. Тогда W(P, Q) будет означать матрицу размера |P| × |Q|, у которой на j-й позиции i-й строки стоит элемент, расположенный в основной матрице в строке P[i] и столбце Q[j]. Запись S[i] в данном случае означает i-й по величине элемент множества S.
У Гарри уже выбрано множество строк A и множество столбцов B. Он хочет выбрать множество столбцов X так, чтобы выполнялись следующие условия:
Если решения не существует, то выведите -1. В противном случае выведите любое подходящее множество X.
Множество строк матрицы над полем остатков по модулю 2 называется линейно независимым если и только если не существует какого-нибудь непустого подмножества строк, такого что сумма всех строк в этом подмножестве равна нулевой строке. Разумеется, речь идёт о сумме по модулю два, часто называемому исключающим ИЛИ (XOR).
В первой строке записаны целые числа n, a и b (0 ≤ a, b ≤ n, 1 ≤ n ≤ 50).
В следующей строке записаны a различных целых чисел, означающих индексы строк A1, A2, ..., Aa (1 ≤ Ai ≤ n). Если a = 0, то данная строка будет оставлена пустой.
Следующая строка содержит b различных целых чисел B1, B2, ..., Bb (1 ≤ Bi ≤ n). Если b = 0, то данная строка будет оставлена пустой.
В каждой из последующих n строк записана бинарная строка длины n, определяющая соответствующую строку матрицы.
Если решения не существует, то выведите -1. В противном случае сначала выведите целое число x, равное размеру вашего подмножества X (0 ≤ x ≤ n). В следующей строке выведите x целых чисел X1, X2, ..., Xx (1 ≤ Xi ≤ n). Все числа должны быть различны и никакое из них не должно встречаться в множестве B.
3 1 0
2
001
010
101
1
2
2 1 0
1
11
10
1
2
2 0 0
11
11
-1
6 4 1
1 4 2 3
2
101010
010101
110000
001100
000001
100000
3
3 4 5