#include<fstream>
#define NMAX 210
using namespace std;
int n, a[NMAX][NMAX], i, j;
ifstream f("oras.in");
ofstream g("oras.out");
void Genereaza(int n)
{
int gata=0, i;
while (!gata)
{
if (n==3)
{
gata=1; a[1][2]=a[2][3]=a[3][1]=1;
}
else
if (n==6)
{
gata=1;
a[1][2]=a[1][3]=a[1][4]=a[5][1]=a[6][1]=1;
a[2][3]=a[2][4]=a[2][5]=a[6][2]=1;
a[3][4]=a[5][3]=a[3][6]=1;
a[4][5]=a[4][6]=1;
a[5][6]=1;
}
else
{
a[n-1][n]=1;
for (i=1; i<=n-2; ++i) a[i][n-1]=a[n][i]=1;
n-=2;
}
}
}
void Scrie()
{
int i, j;
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j) g<<a[i][j];
g<<"\n";
}
}
int main()
{
f>>n;
if (n==4) g<<"-1";
else
{
Genereaza(n);
Scrie();
}
f.close();
g.close();
return 0;
}