#include<iostream>
#include<algorithm>
using namespace std;
#define INF 10000000

int dp[25][30],n,h,f,s,a[25],ans,cnt=1,k,i,j;

int main()
{
   // while(1)
    //{
        //cin>>n;
		n=4;

        for(int i=0;i<=n;i++)
            for(int j=0;j<=n;j++)
                dp[i][j]=INF;


        //if(n==0)
          //  break;

        //for(int i=1;i<=n;i++)
           // cin>>a[i];
            a[1]=1;
            a[2]=2;
            a[3]=6;
            a[4]=10;
        //for( i=1;i<=n;i++) dp[i][1]=0;

        for( j=2;j<=n;j++)
        {
        	cout<<"j = "<<j<<"\n";
            for( i=1;i<=n;i++)
            {
            	cout<<"i = "<<i<<"\n";
            	int o=-1;
                for(k=1;k<i;k++)
				{
					o= max(o,min(dp[k][j-1],a[i]-a[k]));
                    //cout<<o<<"\n";
                }

				dp[i][j]=o;
            }
        }

		for(i=1;i<=n;i++)
		{
			cout<<"\n";
			for(j=1;j<=n;j++)
			cout<<dp[i][j]<<" ";
		}

    //}
}


