#include <fstream>
using namespace std;
ifstream fin ("oras.in");
ofstream fout ("oras.out");
int a3[5][5]={ {0,1,0}, {0,0,1} , {1,0,0} };
int a6[10][10]={ {0,1,1,1,0,0}, {0,0,0,1,1,0}, {0,0,0,1,0,1}, {0,0,0,0,1,1}, {1,0,1,0,1}, {1,1,0,0,0,0} };
int a[205][205],n,N,i,j;
int main () {
fin>>n;
if (n==4) {
fout<<"-1\n";
return 0;
}
N=n;
while (1) {
if (n==3) {
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
a[i][j]=a3[i-1][j-1];
break;
}
if (n==6) {
for (i=1;i<=6;i++)
for (j=1;j<=6;j++)
a[i][j]=a6[i-1][j-1];
return 0;
}
for(i=1;i<=n-2;i++)
a[i][n]=a[n-1][i]=1;
a[n][n-1]=1;
n-=2;
}
for (i=1;i<=N;i++){
for (j=1;j<=N;j++)
fout<<a[i][j];
fout<<"\n";
}
return 0;
}