# include <bits/stdc++.h>
# define reg register
using namespace std;
int a[5][5], hang[5], lie[5], fang[3][3], x, y;
bool vis[20];
bool check () {
for (reg int i = 0; i < 4; ++ i)
if (hang[i] < 34 || lie[i] < 34)
return 0;
for (reg int i = 0; i < 2; ++ i)
for (reg int j = 0; j < 2; ++ j)
if (fang[i][j] < 34)
return 0;
if (a[1][1] + a[1][2] + a[2][1] + a[2][2] != 34 || a[0][0] + a[1][1] + a[2][2] + a[3][3] != 34 || a[0][3] + a[1][2] + a[2][1] + a[3][0] != 34)
return 0;
return 1;
}
void dfs (int x, int y) {
if (x > 3) {
if (check ()) {
for (reg int i = 0; i < 4; ++ i, cout << '\n')
for (reg int j = 0; j < 4; ++ j)
cout << a[i][j] << ' ';
cout << '\n';
}
return ;
}
if (a[x][y] == 1)
dfs (x + y / 3, (y + 1) & 3);
else
for (reg int i = 2; i < 17; ++ i)
if (! vis[i] && i + hang[x] < 35 && i + lie[y] < 35 && i + fang[x >> 1][y >> 1] < 35) {
vis[i] = 1;
hang[x] += i;
lie[y] += i;
fang[x >> 1][y >> 1] += i;
a[x][y] = i;
dfs (x + y / 3, (y + 1) & 3);
vis[i] = 0;
hang[x] -= i;
lie[y] -= i;
fang[x >> 1][y >> 1] -= i;
}
return ;
}
int main () {
ios::sync_with_stdio (0);
cin.tie (0);
cout.tie (0);
cin >> x >> y;
-- x, -- y;
hang[x] = lie[y] = fang[x >> 1][y >> 1] = a[x][y] = 1;
dfs (0, 0);
return 0;
}