local n = io.read("*n") local rowrem = {} local colrem = {} for i = 1, n do rowrem[i] = {} colrem[i] = {} for j = 1, n do rowrem[i][j] = true colrem[i][j] = true end end local ret = {} for i = 1, n do ret[i] = {} for j = 1, i - 1 do ret[i][j] = 0 end ret[i][i] = i rowrem[i][i] = false colrem[i][i] = false local cand = i for j = 1, i - 1 do while true do if rowrem[i][cand] and colrem[j][cand] then ret[i][j] = cand rowrem[i][cand] = false colrem[j][cand] = false rowrem[j][cand] = false colrem[i][cand] = false break end cand = cand + 1 if n < cand then cand = cand - n end end end end for i = 1, n do for j = i + 1, n do ret[i][j] = ret[j][i] end end for i = 1, n do print(table.concat(ret[i], " ")) end