/* Code for problem B by cookiedoth Generated 14 Aug 2020 at 03.24 PM ▅███████ ]▄▄▄▄▄▄▄ █████████▅▄▃ Il████████████████] ◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤ ~_^ z_z >_< */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long #define ld long double #define null NULL #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define debug(a) cerr << #a << " = " << a << endl #define forn(i, n) for (int i = 0; i < n; ++i) #define sz(a) (int)a.size() using namespace std; template int chkmax(T &a, T b) { if (b > a) { a = b; return 1; } return 0; } template int chkmin(T &a, T b) { if (b < a) { a = b; return 1; } return 0; } template void output(iterator begin, iterator end, ostream& out = cerr) { while (begin != end) { out << (*begin) << " "; begin++; } out << endl; } template void output(T x, ostream& out = cerr) { output(x.begin(), x.end(), out); } void fast_io() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); } const int mx = 510; int n, a[mx][mx]; signed main() { fast_io(); cin >> n; vector diag; for (int i = 0; i < 2 * n - 1; ++i) { if (i % 2 == 0) { diag.push_back(i / 2); } else { if (i >= n) { diag.push_back((i - n) / 2); } else { diag.push_back(i / 2 + n / 2 + 1); } } } // output(all(diag)); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << diag[i + j] + 1 << ' '; } cout << '\n'; } }