#include #include using namespace std; using namespace atcoder; using ll = long long; using ld = long double; int main(){ ll n; cin >> n; if(n < 3)cout << -1 << '\n'; else{ cout << n * n * 2 << '\n'; vector> hen(n*n,vector(4,0)); hen[0][0] = 1; hen[0][1] = 2; hen[0][2] = n*n-2; hen[0][3] = n*n-1; for(ll i = 1; i < n*n; i++){ for(ll t = 0; t < 4; t++){ hen[i][t] = hen[i-1][t] + 1; if(hen[i][t] == n*n)hen[i][t] = 0; } sort(hen[i].begin(),hen[i].end()); } vector> way(n*n,vector(n*n,0)); bool ok = 1; for(ll i = 0; i < n*n; i++){ for(ll t = 0; t < 4; t++){ if(i < hen[i][t]){ way[i][hen[i][t]] = 1; }else{ if(way[hen[i][t]][i] == 0){ ok = 0; break; } } } } if(ok == 0)cout << -1 << '\n'; else{ for(ll i = 0; i < n*n; i++){ for(ll t = 0; t < 4; t++){ if(i < hen[i][t]){ cout << i+1 << " " << hen[i][t]+1 << '\n'; } } } } } return 0; }