#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; #define rep(i, n) for(int i=0;i<(n);++i) #define rep1(i, n) for(int i=1;i<=(n);i++) #define ll long long using mint = modint998244353; using P = pair<ll,ll>; using lb = long double; using T = tuple<ll, ll, ll>; #ifdef LOCAL # include <debug_print.hpp> # define dbg(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else # define dbg(...) (static_cast<void>(0)) #endif int main() { int n, m; cin >> n >> m; vector<vector<int>> a(1<<n, vector<int>(1<<m)); rep(i,1<<n)rep(j,1<<m){ a[i][j] = (1<<m)*i+j; } rep(i,1<<n){ rep(j,1<<m){ cout << a[i][j]; if(j!=(1<<m)-1){ cout << " "; } } cout << endl; } return 0; }