import java.lang.*;
import java.math.*;
import java.util.*;
import java.io.*;
public class Main {
    void solve() {
        int n=ni(),m=ni();
        int a[][]=new int[n+1][m+1];
        for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[i][j]=ni();

        if(n==1){
            int mn=Integer.MAX_VALUE;
            for(int i=1;i<m;i++) mn=Math.min(mn,Math.abs(a[1][i]-a[1][i+1]));
            pw.println(mn) ;
            return ;
        }
        mn1=new int[n+1][n+1];
        mn2=new int[n+1][n+1];
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){

                if(i==j) continue;

                mn1[i][j]=mn2[i][j]=Integer.MAX_VALUE;
                for(int k=1;k<=m;k++){
                    mn1[i][j]=Math.min(mn1[i][j],Math.abs(a[i][k]-a[j][k]));
                   // if(i==3 && j==4) pw.println(a[i][k]+" "+a[j][k]);
                }
                for(int k=1;k<m;k++){
                    mn2[i][j]=Math.min(mn2[i][j],Math.abs(a[i][k+1]-a[j][k]));
                }
                //if(m==1) mn2[i][j]=0;

            }
        }
      //  pw.println(mn1[3][4]);
        dp=new int[17][1<<16][17];
        for(int i=1;i<17;i++) for(int j=0;j<(1<<16);j++) Arrays.fill(dp[i][j],-1);

        int ans=0;
        for(int i=1;i<=n;i++){
            ans=Math.max(ans,go(2,1<<(i-1),i,i,n));
        }
        pw.println(ans);

    }
    int mn1[][],mn2[][];
    int dp[][][];
    int go(int i,int mask,int prev,int first,int n){
        if(i>n){
       //   if(mn2[first][prev]==0)  pw.println(prev+" "+first+" "+mn2[first][prev]);
            return mn2[first][prev];
        }
       if(dp[first][mask][prev]!=-1) return dp[first][mask][prev];
        int cc=0;
        for(int k=1;k<=n;k++){
            if((mask&(1<<(k-1)))==0){
                cc=Math.max(cc,Math.min(mn1[prev][k],go(i+1,mask|(1<<(k-1)),k,first,n)));
               //if(mn1[prev][k]==0)  pw.println(mn1[prev][k]+" "+prev+" "+k);
            }
        }
        dp[first][mask][prev]=cc;
        return cc;
    }



    long M= (long)1e9+7;
... What is the time complexity of the previous code?