#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int knight(int a,int b,int n){
    int x1=0,y1=0,x2=0,y2=0,co=0;
    if(a==b){
        do{
           x2=x2+a; y2=y2+b;
            co++;
        }while(x2<n-1);
        if(x2==n-1)
            return(co);
        else
            return(-1);
    }
    
    else if(a==n-1 || b==n-1){
        if(a==1 || b==1){
            if(n%2==0)
              return(n-1);
            else
              return(2*(n-1));
        }
        else if(a==2 || b==2){
            if(n%2!=0)
                return(n-1);
            else 
                return(-1);
        }
        else return 0;
    }
    
    else return 0; 
}
int main(){
    int n; 
    scanf("%d",&n);
    int k[n-1][n-1];
    for(int a=1;a<n;a++){
        for(int b=1;b<n;b++){
            if (a>b)
                k[a][b]=k[b][a];
            else
            k[a][b]= knight(a,b,n);
            printf("%d ",k[a][b]);
        }
        printf("\n");
    }
    // your code goes here
    return 0;
}