Dla macierzy 01 typu $n \times m$ oznaczanej jako $A$ oraz macierzy 01 typu $m \times p$ oznaczanej jako $B$, definiujemy ich iloczyn jako macierz 01 typu $n \times p$ oznaczaną jako $C$, gdzie $C_{i,j} = \bigoplus_{k=1}^{m} A_{i,k} \& B_{k,j}$ $^\dagger$.
Obecnie Link chce wykonać operację odwrotną do mnożenia — dzielenie. Mając daną macierz 01 typu $n \times m$ oznaczaną jako $A$ oraz macierz 01 typu $n \times p$ oznaczaną jako $C$, musisz znaleźć macierz $B$ typu $m \times p$, taką że iloczyn $A$ oraz $B$ jest dokładnie równy $C$.
$^\dagger$ $\oplus$ oznacza operację alternatywy wykluczającej (XOR), a $\&$ oznacza operację koniunkcji (AND). Na przykład: $(0011)_2 \oplus (0101)_2 = (0110)_2$, $(0011)_2 \& (0101)_2 = (0001)_2$.
Wejście
Każdy plik testowy zawiera tylko jeden zestaw danych testowych.
Pierwsza linia zawiera trzy liczby całkowite $n, m, p$ ($1 \le n, m, p \le 1000$).
Następnie $n$ linii, z których $i$-ta zawiera $m$ liczb całkowitych $A_{i,1}, A_{i,2}, \dots, A_{i,m}$ ($A_{i,j} \in \{0, 1\}$), reprezentujących elementy macierzy $A$.
Następnie $n$ linii, z których $i$-ta zawiera $p$ liczb całkowitych $C_{i,1}, C_{i,2}, \dots, C_{i,p}$ ($C_{i,j} \in \{0, 1\}$), reprezentujących elementy macierzy $C$.
Wyjście
Jeśli macierz $B$ spełniająca warunki nie istnieje, wypisz „No”.
Jeśli macierz $B$ spełniająca warunki istnieje, wypisz w pierwszej linii „Yes”, a następnie wypisz $m$ linii, z których każda zawiera $p$ liczb całkowitych $B_{i,1}, B_{i,2}, \dots, B_{i,p}$ ($B_{i,j} \in \{0, 1\}$), reprezentujących znalezioną macierz $B$.
Jeśli istnieje wiele macierzy $B$ spełniających warunki, możesz wypisać dowolną z nich.
Przykład
Wejście 1
3 2 3 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0
Wyjście 1
Yes 0 0 0 0 1 0
Wejście 2
3 2 3 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1
Wyjście 2
No