// 列をローテーションするイメージ #include #include #define rep(i, n) for(i = 0; i < n; i++) using namespace std; int main() { int n, m, K; cin >> n >> m >> K; if (K * K < m) { cout << -1 << endl; return 0; } int i, j; vector> a(n, vector(n)); rep(i, n) { rep(j, K) { a[i][j] = (i * K + j) % m; } } for (j = K; j < n; j++) { rep(i, n) a[i][j] = a[i][j - K]; } rep(i, n) { rep(j, n) { cout << a[i][j] + 1; if (j + 1 < n) cout << " "; } cout << endl; } return 0; }