class MagischesQuadrat {

    int quad[][];
    int size = 0;

    MagischesQuadrat(int n) {
	
	size = n;
        quad = new int[n][n];
        for (int i = 0; i<n; i++) {
		for (int j = 0; j<n; j++) {
			quad[i][j] = 0;
		}
	}
	
	if (n % 2 != 0) {
		int z = n/2; 
		int s = n/2 +1;
	
		quad[z][s] = 1;
		for (int i = 2; i<=n*n; i++) {
			z--; s++;
			if (z<0) z=n-1;
			if (s>n-1) s=0;
			this.fill(z,s,i);		
		}
	}
    }
    
    public void print() {
	    for (int i=0;i<size;i++) {
		    for (int j=0; j<size; j++) {
			    // unschoen für Zahlen >= 100
			    String space = (quad[i][j] <10) ? " " : "";
			    System.out.print(space+quad[i][j]+" ");
		    }
		    System.out.println();
	    }
    }
    
    void fill(int z,int s,int i) {
	z = (z>size-1) ? 0 : z;
	s = (s>size-1) ? 0 : s;
	if (quad[z][s]==0) 
		quad[z][s] = i;
	else
 		fill (z+1,s+1,i);
    }
    
    public static void main(String[] args) {
	    MagischesQuadrat mq = new MagischesQuadrat(7);
	    mq.print();
    }
}
