#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void Main() { int N,M; cin >> N >> M; vector> ans(1 << N,vector(1 << M)); for(int i = 0;i < 1 << N;i++) { for(int j = 0;j < 1 << M;j++) { ans[i][j] = (1 << M) * i + j; } } for(int i = 0;i < 1 << N;i++) { for(int j = 0;j < 1 << M;j++) { cout << ans[i][j] << (j + 1 == (1 << M) ? "\n" : " "); } } /* for(int i = 0;i < 1 << N;i++) */ /* { */ /* for(int k = i + 1;k < 1 << N;k++) */ /* { */ /* for(int j = 0;j < 1 << M;j++) */ /* { */ /* for(int l = j + 1;l < 1 << M;l++) */ /* { */ /* int x = ans[i][j] ^ ans[i][l] ^ ans[k][j] ^ ans[k][l]; */ /* if(x) */ /* { */ /* cout << "WA" << endl; */ /* } */ /* } */ /* } */ /* } */ /* } */ } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) Main(); }