#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std;
#define FOR(i, a, b) for (i = (int)(a); i <= (int)(b); i ++)
#define CLEAR(x) memset(x, 0, sizeof(x))
#define NMAX 202
int N, i, j, p;
char a[NMAX][NMAX];
const char t[3][4] = {"010", "001", "100"};
const char s[6][7] = {"011100","001110","000101","000011","101001","110000"};
int main(void)
{
freopen("oras.in", "r", stdin);
freopen("oras.out", "w", stdout);
scanf("%d", &N);
memset(a, '0', sizeof(a));
if (N == 4) { printf("-1\n"); return 0; }
if (N & 1)
{
FOR(i, 0, 2) memcpy(a[i], t[i], p = 3);
}
else
{
FOR(i, 0, 5) memcpy(a[i], s[i], p = 6);
}
for (; p < N; p += 2)
{
FOR(i, 0, p - 1) a[i][p] = '1', a[p + 1][i] = '1';
a[p][p + 1] = '1';
}
FOR(i, 0, N - 1)
{
FOR(j, 0, N - 1)
printf("%c", a[i][j]);
printf("\n");
}
return 0;
}