/**把它旋转45度,按行存为二维数组,遍历pop数组最后一个元素即可**/
let level = readline();
let arr = new Array(level).fill(null);
for(let i=1;i<=level;i++){
arr[i-1]=new Array(i).fill(0);
}
let k=1;
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr[i].length;j++){
arr[i][j] = k;
k++;
}
}
let res = [];
for(let i =0;i<level;i++){
let temp = new Array();
for(let j = 0;j<arr.length;j++){
if(arr[j].length>0){
temp.push(arr[j].pop());
}
}
res.push(temp);
}
res.forEach(item=>{
console.log(item.join(' '));
})
let level = readline();
let arr = new Array(level).fill(null);
for(let i=1;i<=level;i++){
arr[i-1]=new Array(i).fill(0);
}
let k=1;
for(let i=0;i<arr.length;i++){
for(let j=0;j<arr[i].length;j++){
arr[i][j] = k;
k++;
}
}
let res = [];
for(let i =0;i<level;i++){
let temp = new Array();
for(let j = 0;j<arr.length;j++){
if(arr[j].length>0){
temp.push(arr[j].pop());
}
}
res.push(temp);
}
res.forEach(item=>{
console.log(item.join(' '));
})