class Snail 
{
        static final int MAX_X=5;
        static final int MAX_Y=5;
        static int min_x=0;
        static int min_y=0;
        static int max_x=MAX_X;
        static int max_y=MAX_Y;
        static int n;
        static int cnt;
        int[][] p;
        int x, y;
        boolean loop=true;
        Snail()
        {
                x=-1;
                y=0;
                n=1;
                cnt=1;
                p= new int[max_y][max_x];
                max_x--;
                max_y--;
        }
        void xUp()
        {
                loop=false;
                for(x+=1;x<=max_x;x++)
                {
                        p[y][x]=n++;
                        loop=true;
                }
                x--;
                min_y++;
                cnt++;
        }
        void yUp()
        {
                loop=false;
                for(y+=1;y<=max_y;y++)
                {
                        p[y][x]=n++;
                        loop=true;
                }
                y--;
                max_x--;
                cnt++;
        }
        void xDown()
        {
                loop=false;
                for(x-=1;x>=min_x;x--)
                {
                        p[y][x]=n++;
                        loop=true;
                }
                x++;
                max_y--;
                cnt++;
        }
        void yDown()
        {
                loop=false;
                for(y-=1;y>=min_y;y--)
                {
                        p[y][x]=n++;
                        loop=true;
                }
                y++;
                min_x++;
                cnt++;
        }

        void work()
        {
                while(loop)
                {
                        switch(cnt%4)
                        {
                                case 1 : xUp();break;
                                case 2 : yUp();break;
                                case 3 : xDown();break;
                                case 0 : yDown();break;
                                default : ;
                        }
                }
        }

        void print()
        {
                for(int i=0; i<MAX_Y; i++)
                {
                        for(int j=0; j<MAX_X; j++)
                        {
                                System.out.printf("%3d",p[i][j]);
                        }
                        System.out.println("");
                }
        }
}


class SnailMain
{
        public static void main(String[] args) 
        {
                Snail s = new Snail();
                s.work();
                s.print();
        }
}