var input = parseInt(process.argv[0]);
if (isNaN(input)) input = parseInt(process.argv[1]);
if (isNaN(input)) input = parseInt(process.argv[2]);
if (isNaN(input)) input = parseInt(process.argv[3]);
if (isNaN(input)) input = parseInt(process.argv[4]);
if (isNaN(input)) input = parseInt(process.argv[5]);
if (isNaN(input)) input = parseInt(process.argv[6]);
var inputM = input - 1;
var posses = [];
for (var y = 0; y < input; y++) {
posses[y] = [];
for (var index = 0; index < input; index++) {
posses[y][index] = 'x';
}
}
for (var y = 0; y < input; y++) {
var left = y;
var right = inputM - y;
var direction = y % 2 === 0;
var isRetarted = input % 2 !== 0;
for (var x = 0; x < right; x++) {
add(y + 1 + x, y, x + 2 - 1);
}
for (var x = 0; x < left; x++) {
add(y - 1 - x, y, input - x - 1);
}
add(y, y, '0');
}
var rstr = '';
for (var y = 0; y < input; y++) {
var str = '';
for (var x = 0; x < input; x++) {
str += posses[y][x] + ' ';
}
rstr += sub(str) + (y === inputM ? '' : '\n');
}
console.log(rstr);
for (var y = 0; y < input; y++) {
for (var x = 0; x < input; x++) {
if (posses[y].filter((f) => f === posses[y][x]).length > 1) {
console.log('s');
}
}
}
function add(x, y, str) {
posses[y][x] = str;
}
function sub(str) {
return str.substring(0, str.length);
}