#include<iostream>
#include<algorithm>

using namespace std;
int k;
int ans[501][501];
int main(){
  cin >> k;
  if(k <= 500){
    cout << k << endl;
    for(int i = 1;i <= k;i++){
      for(int j = 1;j <= k;j++){
	cout << i << " ";
      }cout << endl;
    }
    return 0;
  }
  cout << 500 << endl;
  for(int i = 0;i < 500;i++){
    for(int j = 0;j < 500;j++){
      if(i + 500 + 1 <= k){
	ans[j][(i+j)%500] = 1 + 500 * (j % 2) + i;
      }
      else{
	ans[j][(i+j)%500] = 1 + i;
      }
    }
  }
  for(int i = 0;i < 500;i++){
    for(int j = 0;j < 500;j++){
      cout << ans[i][j] << " ";
    }cout << endl;
  }
  return 0;
}