#include int main() { using namespace std; cin.tie(nullptr)->sync_with_stdio(false); int n; cin >> n; vector> a(1 << n); vector> b(1 << n); for (auto&& f : a) { for (unsigned& e : f) { cin >> e; } } for (auto&& f : b) { for (unsigned& e : f) { cin >> e; } } for (int s = 1; s < 1 << n; s <<= 1) { for (int o = 0; o < 1 << n; o += s << 1) { for (int i = o, j = o + s; j < o + (s << 1); ++i, ++j) { for (int k = 0; k <= 31; ++k) { tie(a[i][k], a[j][k]) = pair(a[i][k] + a[j][k], a[i][k] - a[j][k]); tie(b[i][k], b[j][k]) = pair(b[i][k] + b[j][k], b[i][k] - b[j][k]); } } } } vector> c(1 << n); for (int i = 0; i < 1 << n; ++i) { for (int s = 0; s <= 31; ++s) { for (int t = 0; t <= 31; ++t) { c[i][s + t] += a[i][s] * b[i][t]; } } } for (int s = 1; s < 1 << n; s <<= 1) { for (int o = 0; o < 1 << n; o += s << 1) { for (int i = o, j = o + s; j < o + (s << 1); ++i, ++j) { for (int k = 0; k <= 62; ++k) { tie(c[i][k], c[j][k]) = pair(c[i][k] + c[j][k], c[i][k] - c[j][k]); } } } } for (auto&& f : c) { for (int i = 0; i <= 62; ++i) { cout << (f[i] >> n & 1) << " \n"[i == 62]; } } }