#include<bits/stdc++.h>
using namespace std;

int K;
int ans[555][555];

void print(int n) {
    printf("%d\n", n);
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            printf("%d ", ans[i][j] + 1);
        }
        printf("\n");
    }
}

int main() {
    scanf("%d", &K);

    if(K == 1) {
        printf("1\n1");
        return 0;
    }

    int n = (K + 3) / 4 * 2;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            if(i % 2) ans[i][j] = (i + j) % n;
            else ans[i][j] = n + (i + j) % n;
        }
    }
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            if(ans[i][j] >= K) {
                ans[i][j] -= n;
            }
        }
    }
    print(n);
}
