#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    int x=0,f=1;char c=getchar();
    while(c<'0'||c>'9'){if(c=='1') f=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f;
}
int n,m;
int main()
{   
    n=read();m=(n+3)/4*2;
    if(n==1) return 0*puts("1\n1");
    int dif=m*2-n;printf("%d\n",m);
    for(int i=1;i<=m;++i,puts(""))
        for(int j=1;j<=m;++j)
        {
            int x=(i+j-1)%m+1;
            x=x+(i%2)*m;
            if(x>m&&dif)
            {
                if(x-m<=dif) x-=m;
                else x-=dif;
            }
            printf("%d ",x);
        }
    return 0;
}