#include<bits/stdc++.h>
using namespace std;
int xx,yy,a[5][5];
int f[17]={0,1};
bool pd(int x,int y){
if(x>1||x==1&&y==4){
if(a[1][1]+a[1][2]+a[1][3]+a[1][4]!=34){
return 0;
}
}
if(x>2||x==2&&y==4){
if(a[2][1]+a[2][2]+a[2][3]+a[2][4]!=34){
return 0;
}
}
if(x>3||x==3&&y==4){
if(a[3][1]+a[3][2]+a[3][3]+a[3][4]!=34){
return 0;
}
}
if(x==4&&y==4){
if(a[4][1]+a[4][2]+a[4][3]+a[4][4]!=34){
return 0;
}
}
if(x==4){
if(a[1][1]+a[2][1]+a[3][1]+a[4][1]!=34){
return 0;
}
}
if(x==4&&y>1){
if(a[1][2]+a[2][2]+a[3][2]+a[4][2]!=34){
return 0;
}
}
if(x==4&&y>2){
if(a[1][3]+a[2][3]+a[3][3]+a[4][3]!=34){
return 0;
}
}
if(x==4&&y==4){
if(a[1][4]+a[2][4]+a[3][4]+a[4][4]!=34){
return 0;
}
}
if(x==4){
if(a[4][1]+a[3][2]+a[2][3]+a[1][4]!=34){
return 0;
}
}
if(x==4&&y==4){
if(a[1][1]+a[2][2]+a[3][3]+a[4][4]!=34){
return 0;
}
}
if(x==4&&y==4){
if(a[1][1]+a[1][4]+a[4][1]+a[4][4]!=34){
return 0;
}
}
if(x==4||x==3&&y>=3){
if(a[2][2]+a[2][3]+a[3][2]+a[3][3]!=34){
return 0;
}
}
if(x>2||x==2&&y>=2){
if(a[1][1]+a[1][2]+a[2][1]+a[2][2]!=34){
return 0;
}
}
if(x>2||x==2&&y==4){
if(a[1][3]+a[1][4]+a[2][3]+a[2][4]!=34){
return 0;
}
}
if(x==4&&y>=2){
if(a[1][4]+a[1][3]+a[2][3]+a[2][4]!=34){
return 0;
}
}
if(x==4&&y==4){
if(a[3][3]+a[3][4]+a[4][3]+a[4][4]!=34){
return 0;
}
}
return 1;
}
void dfs(int m,int n){
if(m==5&&n==1){
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
printf("%d ",a[i][j]);
}
putchar('\n');
}
putchar('\n');
return;
}else{
if(a[m][n]&&pd(m,n)){
if(n==4){
dfs(m+1,1);
}else{
dfs(m,n+1);
}
}else{
for(int k=2;k<=16;k++){
if(f[k]==0){
f[k]=1;
a[m][n]=k;
if(pd(m,n)){
if(n==4){
dfs(m+1,1);
}else{
dfs(m,n+1);
}
}
f[k]=0;
a[m][n]=0;
}
}
}
}
}
int main(){
cin>>xx>>yy;
a[xx][yy]=1;
dfs(1,1);
return 0;
}