void make_zero(int a[100][100], int);
void reduce(int a[100][100],int);
int min(int a[100][100], int i, int p, int flag);

int main()
{
	int n, a[100][100], sum;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		sum = 0;
		for (int j = 0; j < n; j++)
		{
			for (int k = 0; k < n; k++)
			{
				cin >> a[j][k];
			}
		}
		for (int p = n - 1; p > 0; p--)
		{
			make_zero(a, p);
			sum += a[1][1];
			reduce(a, p);
		}
		cout << sum << endl;
	}
	return 0;
}

void make_zero(int a[100][100], int p)
{
	int flag = 0, m;
	for (int i = 0; i <= p; i++)
	{
		m = min(a, i, p, flag);
		for (int j = 0; j <= p; j++)
		{
			a[i][j] -= m;
		}
	}
	flag = 1;
	for (int k = 0; k <= p; k++)
	{
		m = min(a, k, p, flag);
		for (int j = 0; j <= p; j++)
		{
			a[j][k] -= m;
		}
	}
}

void reduce(int a[100][100], int p)
{
	for (int i = 0; i <= p; i++)
	{
		for (int j = 1; j < p; j++)
		{
			a[i][j] = a[i][j + 1];
		}
	}
	for (int k = 0; k < p; k++)
	{
		for (int j = 1; j < p; j++)
		{
			a[j][k] = a[j + 1][k];
		}
	}
}

int min(int a[100][100], int i, int p, int flag)
{
	int t;
	if (flag == 0)
	{
		t = a[i][0];
		for (int j = 0; j <= p; j++)
		{
			if (a[i][j] < t)
				t = a[i][j];
		}
	}
	else
	{
		t = a[0][i];
		for (int j = 0; j <= p; j++)
		{
			if (a[j][i] < t)
				t = a[j][i];
		}
	}
	return t;
}


/**
* @author ??
* @date 2010-12-1
* @description
* ??????:?????????
*/
int sum;
void calculate(int[][100],int);

int main()
{
	int n ,a[100][100];
	cin >> n;
		for (int i = 0; i < n; i++)
		{
			sum = 0;
			for (int j = 0; j < n; j++)
				for (int k = 0; k < n; k++)
					cin >> a[j][k];
			calculate(a, n);
			cout << sum << endl;
		}
	return 0;
}
void calculate(int a[][100],int n)
{
	if (n == 1)
		return;
	int minx, miny;
	for(int i = 0; i < n; i++)
	{
		minx = a[i][0];
		for(int j = 1; j < n; j++)
		{
			if (a[i][j] < minx)
				minx = a[i][j];
		}
		for(int j = 0; j < n; j++)
			a[i][j] -= minx;
	}
	for (int i = 0; i < n;i++)
	{
		miny = a[0][i];
		for (int j = 1; j < n;j++)
		{
			if (a[j][i] < miny)
				miny = a[j][i];
		}
		for (int j = 0; j < n; j++)
			a[j][i] -= miny;
	}
	sum += a[1][1];
	for (int i = 0; i < n; i++)
		for (int j = 1; j < n - 1; j++)
			a[i][j] = a[i][j + 1];
	for (int i = 0; i < n - 1; i++)
		for (int j = 1; j < n - 1; j++)
			a[j][i] = a[j + 1][i];
	calculate(a, n - 1);
}


int Matrix[100][100];

int a[100]={0};

int b[100]={0};

int N=0;

void f(int n)
{
	memset(a,0,sizeof(a));
	for(int i=0;i<n;i++)
		{
			a[i]=Matrix[i][0];
			for(int k=1;k<n;k++)
				if(a[i]>Matrix[i][k])
					a[i]=Matrix[i][k];
		}
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				Matrix[i][j]-=a[i];
}
void g(int n)
{
	memset(b,0,sizeof(b));
	for(int i=0;i<n;i++)
		{
			b[i]=Matrix[0][i];
			for(int k=1;k<n;k++)
				if(b[i]>Matrix[k][i])
					b[i]=Matrix[k][i];
		}
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			Matrix[j][i]-=b[i];
}
int h(int n)
{
	int k=0;
	f(n);
	g(n);
	k=Matrix[1][1];
	if(n==2)
		return k;
	for(int i=1;i<n-1;i++)
	{
		Matrix[0][i]=Matrix[0][i+1];
		Matrix[i][0]=Matrix[i+1][0];
		for(int j=1;j<n-1;j++)
			Matrix[i][j]=Matrix[i+1][j+1];
	}
	return k+h(n-1);
}
int main()
{
	scanf("%d",&N);
	for(int j=0;j<N;j++)
	{
		for(int i=0;i<N;i++)
			for(int j=0;j<N;j++)
				scanf("%d",&Matrix[i][j]);
		printf("%d\n",h(N));
	}
	return 0;
}


//============================================================================
// Name        : 2.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

void putout(int a[N][N],int num)
{
	for(int i=0;i<num;i++)
	{
		for(int j=0;j<num;j++)
			cout<<setw(3)<<a[i][j];
		cout<<endl;
	}
}

void cut1 (int a[N][N],int b,int num)//¶ÔÃ¿ò»DD½øDD1éáã
{
	int a1[N][N];
	memcpy(a1,a,N*N);
	for(int i=num-2;i>=0;i--)
		a1[b][i]=min(a1[b][i],a1[b][i+1]);
	for(int i=0;i<num;i++)
		a[b][i]-=a1[b][0];
}

void cut2 (int a[N][N],int b,int num)//¶ÔÃ¿ò»áD½øDD1éáã
{
	int a1[N][N];
	memcpy(a1,a,N*N);
	for(int i=num-2;i>=0;i--)
		a1[i][b]=min(a1[i][b],a1[i+1][b]);
	for(int i=0;i<num;i++)
		a[i][b]-=a1[0][b];
}

int remain(int a[N][N],int num,int out)//¶ÔÃ¿ò»¸ö¾ØÕó½øDD1éáãoíÏû¼õ?Ä2ù×÷?¬2?¼ÆËãout
{
	for(int i=0;i<num;i++)//¶ÔÃ¿ò»DD1éáã
		cut1(a,i,num);
	for(int i=0;i<num;i++)//¶ÔÃ¿ò»áD1éáã
		cut2(a,i,num);
	out=out+a[1][1];//àÛ¼óa[1][1]
	for(int i=1;i<num-1;i++)//Ïû¼õ?ú¶tDD
		for(int j=0;j<num;j++)
			a[i][j]=a[i+1][j];
	for(int i=1;i<num-1;i++)//Ïû¼õ?ú¶táD
		for(int j=0;j<num-1;j++)
			a[j][i]=a[j][i+1];
	num--;//¾ØÕóéùò»½×
	if(num==1)
		return out;
	else
		return remain(a,num,out);
}

int main() {
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int a[N][N];//ÖØÖÃa[200][200]
		memset(a,0,N*N);
		for(int i=0;i<n;i++)//êäèë¾ØÕó
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		int p=remain(a,n,0);//¼ÆËãa[1][1]?Äoí
		cout<<p<<endl;
	}
	return 0;
}


int main()
{
    int n;
    int sum=0;
    cin >> n;
    int i, j, k, h, p ,q;
    for (k=0;k<n;k++)
    {
        sum = 0;
        int board[105][105]={0};
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
                cin >> board[i][j];
            }
        }
        for (h=0;h<n;h++)
        {
            for (i=h;i<n;i++)
            {
                int min = board[i][h];
                for (j=h;j<n;j++)
                {
                     if (board[i][j] < min)
                     {
                         min = board[i][j];
                     }
                }
                for (j=h;j<n;j++)
                {
                    board[i][j]-=min;
                }
            }
            for (j=h;j<n;j++)
            {
                int min = board[h][j];
                for (i=h;i<n;i++)
                {
                    if (board[i][j] < min)
                    {
                        min = board[i][j];
                    }
                }
                for (i=h;i<n;i++)
                {
                     board[i][j]-=min;
                }
            }
            sum+=board[h+1][h+1];
            board[h+1][h+1]=board[h][h];
            for (p=h+2;p<n;p++)
            {
                board[h+1][p] = board[h][p];
            }
            for (p=h+2;p<n;p++)
            {
                board[p][h+1] = board[p][h];
            }
         }
         cout << sum << endl;
     }
     return 0;
}


int juzhen(int);
int zhen[100][100];
int main()
{
	int n, i, j, k;
	cin >> n;
	for( k = 0; k < n; k++)
	{
		memset(zhen, 0, sizeof(zhen));
		for(i = 0; i < n; i++)
		{
			for(j = 0; j < n; j++)
			{
				cin >> zhen[i][j];
			}
		}
		cout << juzhen(n) << endl;
	}
	return 0;
}
int juzhen(int n)
{
	int i, j, min, num;
	if( n == 1 )
		return 0;
	for( i = 0; i < n; i ++)
	{
		min = zhen[i][0];
		for(j = 0; j < n; j++)
		{
			if( zhen[i][j] < min )
				min = zhen[i][j];
		}
		for(j = 0; j < n; j ++)
		{
			zhen[i][j] -= min;
		}
	}
    for( j = 0; j < n; j++ )
	{
		min = zhen[0][j];
		for( i = 0; i < n; i++ )
		{
			if( zhen[i][j] < min )
				min = zhen[i][j];
		}
		for( i = 0; i < n; i++ )
		{
			zhen[i][j] -= min;
		}
	}
	num = zhen[1][1];
	for( i = 0; i < n; i++ )
	{
		for( j = 0; j < n; j++ )
		{
			if( i > 1 && j > 1 )
				zhen[i - 1][j - 1] = zhen[i][j];
			if( i > 1 && j < 1 )
				zhen[i - 1][j] = zhen[i][j];
			if( i < 1 && j > 1 )
				zhen[i][j - 1] = zhen[i][j];
		}
	}
	return num + juzhen(n - 1);
}


int n = 0, a[101][101] = {{0}}, sum = 0, k = 0;
void zerorow(int k)
{
	int min = 0;
	for (int i = 0; i < k; i ++)//every row
	{
		min = a[i][0];
		for (int j = 1; j < k; j ++)//find min
			if (a[i][j] < min)
				min = a[i][j];
		if (min)
			for (int j = 0; j < k; j ++)//to zero
				a[i][j] -= min;
	}
}
void zerocol(int k)
{
	int min = 0;
	for (int i = 0; i < k; i ++)//every col
	{
		min = a[0][i];
		for (int j = 1; j < k; j ++)//find min
			if (a[j][i] < min)
				min = a[j][i];
		if (min)
			for (int j = 0; j < k; j ++)//to zero
				a[j][i] -= min;
	}
}
void jian(int k)
{
	for (int i = 2; i < k; i ++)//row move up
		for (int j = 0; j < k; j ++)
			a[i - 1][j] = a[i][j];
	for (int j = 2; j < n; j ++)//col move left
		for (int i = 0; i < k - 1; i ++)
			a[i][j - 1] = a[i][j];
}
int main()
{
	cin >> n;//cin
	while(cin>>a[0][0])
	{
		sum = 0;
		for (int i = 0; i < n; i ++)
			for (int j = 0; j < n; j ++)
			{
				if (i + j)
					cin >> a[i][j];
			}
		for (k = n; k > 1; k --)
		{
			zerorow(k);
			zerocol(k);
			sum += a[1][1];
			jian(k);
		}
		cout << sum << endl;
	}
	return 0;
}


int main()
{
	int n;
	cin>>n;
	for (int k=0;k<n;k++)
	{
		int a[100][100];
		for (int i=0;i<n;i++)
			for (int j=0;j<n;j++)
				cin>>a[i][j];
		int ans=0;
		for (int nn=n;nn>1;nn--)
		{
			for (int i=0;i<nn;i++)
			{
				int min=a[i][0];
				for (int j=1;j<nn;j++)
					if (min>a[i][j]) min=a[i][j];
				for (int j=0;j<nn;j++)
					a[i][j]-=min;
			}
			for (int i=0;i<nn;i++)
			{
				int min=a[0][i];
				for (int j=1;j<nn;j++)
					if (min>a[j][i]) min=a[j][i];
				for (int j=0;j<nn;j++)
					a[j][i]-=min;
			}
			ans+=a[1][1];
			for (int i=1;i<nn;i++)
				for (int j=0;j<nn;j++)
					a[i][j]=a[i+1][j];
			for (int j=1;j<nn;j++)
				for (int i=0;i<nn;i++)
					a[i][j]=a[i][j+1];
		}
		cout<<ans<<endl;
	}
	return 0;
}


/*
 * ????????.
 *  ????: 2010-12-31
 *    ??????
 */
int juzhen[101][101];
int sum;
void xiaochu(int n) {
	if (n == 1);
	else {
		int minj[101];
		for (int i = 0; i < n; i++)
			minj[i] = 1000;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
				if (juzhen[i][j] < minj[i])
					minj[i] = juzhen[i][j];
			}
			for (int j = 0; j < n; j++)
				juzhen[i][j] = juzhen[i][j] - minj[i];
		}
		for (int i = 0; i < n; i++)
			minj[i] = 1000;
		for (int j = 0; j < n; j++) {
			for (int i = 0; i < n; i++) {
				if (juzhen[i][j] < minj[j])
					minj[j] = juzhen[i][j];
			}
			for (int i = 0; i < n; i++)
				juzhen[i][j] = juzhen[i][j] - minj[j];
		}
		sum = sum + juzhen[1][1];
		for (int j = 1; j < n - 1; j++) {
			juzhen[0][j] = juzhen[0][j + 1];
			juzhen[j][0] = juzhen[j + 1][0];
		}
		for (int i = 1; i < n - 1; i++)
			for (int j = 1; j < n - 1; j++)
				juzhen[i][j] = juzhen[i + 1][j + 1];
		xiaochu(n - 1);
	}
}

int main() {
	int n;
	cin >> n;
	for (int z = 0; z < n; z++) {
		for (int i = 0; i < n; i++)
			for (int j = 0; j < n; j++)
				cin >> juzhen[i][j];
		sum=0;
		xiaochu(n);
		cout << sum << endl;
	}
}


int n;
int board[100][100];
void Subduction(int);
int sum;
int main()
{
    int i;
    cin >> n;
    for (i=0;i<=n-1;i++)
    {
        sum=0;
        int j,k;
        for (j=0;j<=n-1;j++)
        {
            for (k=0;k<=n-1;k++)
            {
                cin >> board[j][k];
            }
        }

        Subduction(n);
    }

               return 0;
}

void Subduction(int m)
{
     if (m==1)
     {
         cout << sum << endl;
     }
     else
     {
     int rowmin[100];
     int colmin[100];
     int p,q;
     for (p=0;p<=m-1;p++)
     {
         rowmin[p]=board[p][0];
         for (q=0;q<=m-1;q++)
         {
             if (board[p][q]<rowmin[p])
             {
                 rowmin[p]=board[p][q];
             }
         }
     }

     for (p=0;p<=m-1;p++)
     {
         for (q=0;q<=m-1;q++)
         {
             board[p][q]-=rowmin[p];
         }
     }
     for (q=0;q<=m-1;q++)
     {
         colmin[q]=board[0][q];
         for (p=0;p<=m-1;p++)
         {
             if (board[p][q]<colmin[q])
             {
                 colmin[q]=board[p][q];
             }
         }
     }

     for (q=0;q<=m-1;q++)
     {
         for (p=0;p<=m-1;p++)
         {
             board[p][q]-=colmin[q];
         }
     }
     sum+=board[1][1];
     for (q=1;q<=m-2;q++)
     {
         board[0][q]=board[0][q+1];
     }
     for (p=1;p<=m-2;p++)
     {
         board[p][0]=board[p+1][0];
     }
     for (p=1;p<=m-2;p++)
     {
         for (q=1;q<=m-2;q++)
         {
             board[p][q]=board[p+1][q+1];
         }
     }
     Subduction(m-1);
     }
}


//************************************************
// file: 2.cpp
// description: ?????????
// date: 2012-11-24
// author: ?? 1200012858
//************************************************
void zero( int array[100][100]);
void subduction( int array[100][100]);
int num, array[100][100];
int main()
{
	int n, i, j, k, sum;
	cin >> n;
	for (k = 0; k < n; k++)
	{
		sum = 0;
		num = n;
	    for (i = 0; i < n; i++)
		   for (j = 0; j < n; j++)
		  	  cin >> array[i][j];
	    for (i = 1; i < n; i++)
	    {
		   zero(array);
		   sum = sum + array[1][1];
		   subduction(array);
	    }
	    cout << sum << endl;
	}
	return 0;
}
void zero(int array[100][100])
{
	int i, j, minuend;
	for (i = 0; i < num; i++)
	{
		minuend = array[i][0];
		for (j = 0; j < num; j++)
			if (array[i][j] < minuend)
				minuend = array[i][j];
		for (j = 0; j < num; j++)
			array[i][j] = array[i][j] - minuend;
	}
	for (i = 0; i < num; i++)
	{
		minuend = array[0][i];
		for (j = 0; j < num; j++)
			if (array[j][i] < minuend)
				minuend = array[j][i];
		for (j = 0; j < num; j++)
			array[j][i] = array[j][i] -minuend;
	}
};

void subduction( int array[100][100])
{
	int i, j, k;
	for (i = 2; i < num; i++)
		for (j = 0; j < num; j++)
			array[i - 1][j] = array[i][j];
	for (i = 2; i < num; i++)
		for (j = 0; j < num; j++)
			array[j][i - 1] = array[j][i];
	num--;
};


int n, m;
int a[maxn][maxn], b[maxn][maxn];
int ans = 0;

void checkline(int p, int n) {
  int tmin = infinity;
  for(int j = 0; j < n; j++)
    if (a[p][j] < tmin) tmin = a[p][j];
  for(int j = 0; j < n; j++)
    a[p][j] -= tmin;
}

void checkcol(int p, int n) {
  int tmin = infinity;
  for(int i = 0; i < n; i++)
    if (a[i][p] < tmin) tmin = a[i][p];
  for(int i = 0; i < n; i++)
    a[i][p] -= tmin;
}

int main() {

//  freopen("input.txt", "rt", stdin);
//  freopen("output.txt", "wt", stdout);

  scanf("%d", &n);
  int tn = n;

  for(int ctn = 0; ctn < tn; ctn++) {

    ans = 0;
    n = tn;

  for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
      scanf("%d", &a[i][j]);

  ans = 0;

  while (n >= 2) {
    for(int i = 0; i < n; i++) checkline(i, n);
    for(int i = 0; i < n; i++) checkcol(i, n);
    ans += a[1][1];
  //  printf("a[1][1] = %d\n", a[1][1]);
    for(int i = 0; i < n; i++)
      for(int j = 1; j < n-1; j++)  a[i][j] = a[i][j+1];
    for(int j = 0; j < n; j++)
      for(int i = 1; i < n-1; i++)  a[i][j] = a[i+1][j];
    n --;
  }

  //puts("=======================");

  printf("%d\n", ans);

  }

  return 0;

}


int a[110][110];
int size;
int zero();
int main()
{
	int n,i;
	int x,y;
	cin>>n;
	for(i=0;i<n;i++)
	{
		size=n;
		for(x=0;x<n;x++)
			for(y=0;y<n;y++)
				cin>>a[x][y];
		int sum=0;
		for(x=1;x<=n-1;x++)
			sum+=zero();
		cout<<sum<<endl;
		//cin.get();
		//cin.get();
	}
	return 0;
}
int zero()
{
	int x,y,temp;
	for(x=0;x<size;x++)
	{
		for(y=1,temp=a[x][0];y<size;y++)
			if(a[x][y]<temp)
				temp=a[x][y];
		for(y=0;y<size;y++)
			a[x][y]-=temp;
	}
	for(y=0;y<size;y++)
	{
		for(x=1,temp=a[0][y];x<size;x++)
			if(a[x][y]<temp)
				temp=a[x][y];
		for(x=0;x<size;x++)
			a[x][y]-=temp;
	}
	temp=a[1][1];
	for(x=1;x<size-1;x++)
		for(y=0;y<size;y++)
			a[x][y]=a[x+1][y];
	for(y=1;y<size-1;y++)
		for(x=0;x<size-1;x++)
			a[x][y]=a[x][y+1];
	size-=1;
	return temp;
}


int array[110][110],sum;

void dispose(int n);

int main()
{
	int n;
	cin >> n;
	int p=0;
	do
	{
		memset(array,0,sizeof(array));
		sum=0;
		for(int i=0 ; i<n ; i++)
			for(int j=0 ; j<n ; j++)
				cin >> array[i][j];
		dispose(n);
		cout << sum << endl;
		p++;
	}while(p<n);
	return 0;
}

void dispose(int n)
{
	int i,j;
	if(n==1)return ;
	for(i=0;i<n;i++)
	{
		int rowmin=array[i][0];
		for(j=1;j<n;j++)
			if(rowmin>array[i][j])
				rowmin=array[i][j];
		for(j=0;j<n;j++)
			array[i][j]-=rowmin;
	}
	for(i=0;i<n;i++)
	{
		int colmin=array[0][i];
		for(j=1;j<n;j++)
			if(colmin>array[j][i])
				colmin=array[j][i];
		for(j=0;j<n;j++)
			array[j][i]-=colmin;
	}
	sum+=array[1][1];
	for(i=1;i<n-1;i++)
		array[0][i]=array[0][i+1];
	for(i=1;i<n-1;i++)
		array[i][0]=array[i+1][0];
	for(i=1;i<n-1;i++)
		for(j=1;j<n-1;j++)
			array[i][j]=array[i+1][j+1];
	dispose(n-1);
}


/*
 * SumMatrixDiag.cpp
 *
 *  Created on: 2013-11-28
 *      Author: 111
 */
int str[101][101];

int main()
{
	int n,sum;
	void oper1(int);
	void oper2(int);
	cin >> n;
	for (int k=0;k<n;k++)
	{
		for (int i=0;i<n;i++)
			for (int j=0;j<n;j++)
				cin >> str[i][j];
		sum = 0;
		for (int i=n;i>1;i--)
		{
			oper1(i);
			sum += str[1][1];
			oper2(i);
		}
		cout << sum << endl;
	}
	return 0;
}

void oper1(int n)
{
	int i,j,min;
    if (n==1) return;
    for (i=0;i<n;i++)
    {
    	min = str[i][0];
        for (j=1;j<n;j++)
        	if (str[i][j]<min)
        		min = str[i][j];
        for (j=0;j<n;j++)
        	str[i][j]-= min;
    }
    for (j=0;j<n;j++)
    {
    	min = str[0][j];
    	for (i=1;i<n;i++)
    		if (str[i][j]<min)
    			min = str[i][j];
    	for (i=0;i<n;i++)
    		str[i][j]-=min;
    }

}
void oper2(int n)
{
	int i,j;
	for (i=1;i<n-1;i++)
	{
		str[0][i] = str[0][i+1];
		str[i][0] = str[i+1][0];
	}
	for (i=1;i<n-1;i++)
		for (j=1;j<n-1;j++)
			str[i][j] = str[i+1][j+1];
}


int main()
{
	int n,m,k,array[100][100];
	cin>>n;
	k=n;m=n;
	while(m>0)
	{
		int i,j,min;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>array[i][j];
	int sum=0;
	while(k>1)
	{
		for(i=0;i<k;i++)
		{
			min=array[i][0];
			for(j=1;j<k;j++)
			{
				if(array[i][j]<min)
					min=array[i][j];
			}
			for(j=0;j<k;j++)
				array[i][j] -= min;
		}
		for(i=0;i<k;i++)
		{
			min=array[0][i];
			for(j=1;j<k;j++)
			{
				if(array[j][i]<min)
					min=array[j][i];
			}
			for(j=0;j<k;j++)
				array[j][i] -= min;
		}
		sum+=array[1][1];
		for(i=0;i<k;i++)
		{
			for(j=1;j<k-1;j++)
			{
				array[i][j]=array[i][j+1];

			}
		}
		for(j=0;j<k-1;j++)
		{
			for(i=1;i<k-1;i++)
			{
				array[i][j]=array[i+1][j];
			}
		}
		k--;
	}
	cout<<sum<<endl;
	k=n;
	m--;
	}
	return 0;
}


int a[100][100];

void minus_row_col(int n)
{
	int row[100], col[100], min_row = 10000, min_col = 10000, i, j;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (a[i][j] < min_row)
				min_row = a[i][j];
		}
		row[i] = min_row;
		min_row = 10000;
	}
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			a[i][j] -= row[i];
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (a[j][i] < min_col)
				min_col = a[j][i];
		}
		col[i] = min_col;
		min_col = 10000;
	}
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			a[j][i] -= col[i];
}

void delete_row_col(int n)
{
	int i, j;
	for (i = 0; i < n; i++)
		for (j = 1; j < n; j++)
			a[i][j] = a[i][j + 1];
	for (j = 0; j < n; j++)
		for (i = 1; i < n; i++)
			a[i][j] = a[i + 1][j];
}

int main()
{
	int n, i, j, k, sum;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
			for (k = 0; k < n; k++)
				scanf("%d", &a[j][k]);
		sum = 0;
		int num = n;
		while (num != 1)
		{
			minus_row_col(num);
			sum += a[1][1];
			delete_row_col(num);
			num--;
		}
		printf("%d\n", sum);
	}
	return 0;
}


int array[101][101],n;
int ans=0;
int findm(int x,int y);
int findn(int x,int y);  //?????????
int main()
{
    int i,j,k;
    int a,b,m,minm,temp[101][101];
    cin>>n;
    for(k=0;k<n;++k)
    {
        ans=0;
        for(i=0;i<n;++i)
        {
            for(j=0;j<n;++j)
            {
                cin>>array[i][j];
            }
        }    //????
        m=n;
        while(m>1)  //?n-1?
        {
            for(i=0;i<m;++i)
            {
                minm=findm(i,m);
                for(j=0;j<m;++j)
                {
                    array[i][j]-=minm;
                }
            }
            for(i=0;i<m;++i)
            {
                minm=findn(i,m);
                for(j=0;j<m;++j)
                {
                    array[j][i]-=minm;
                }
            }         //??????????
            ans+=array[1][1];
            memset(temp,0,sizeof(temp));
            a=0;
            b=0;    //???
            for(i=0;i<m;++i)
            {
                if(i==1) continue;
                for(j=0;j<m;++j)
                {
                    if(j==1) continue;
                    temp[a][b]=array[i][j];
                    b++;
                }
                a++;
                b=0;
            }   //?????????????
            memset(array,0,sizeof(array));
            for(i=0;i<a;++i)
            {
                for(j=0;j<a;++j)
                {
                    array[i][j]=temp[i][j];
                }
            }   //??????
            m--;
        }
        cout<<ans<<endl;   //????
    }
    return 0;
}
int findm(int x,int y)
{
     int i,j;
     int minn=1000000;
     for(i=0;i<y;++i) if(array[x][i]<minn) minn=array[x][i];
     return minn;
}
int findn(int x,int y)
{
     int i,j;
     int minn=1000000;
     for(i=0;i<y;++i) if(array[i][x]<minn) minn=array[i][x];
     return minn;
}


int num[100][100];
int n=0;

int xiaoling(int a);

int main(){
	int i, j, sum=0, k;
	cin >> n;
	for (k=0;k<n;k++){
		for (i=0;i<n;i++){
			for (j=0;j<n;j++){
				cin >> num[i][j];
			}
		}
		sum=xiaoling(n);
		cout << sum << endl;
	}
	return 0;
}

int xiaoling(int a){
	int i, j, min, temp=0;
	if (a==1)
		return 0;
	for (i=0;i<a;i++){
		min=num[i][0];
		for (j=0;j<a;j++){
			min=(min>num[i][j])?num[i][j]:min;
		}
		if (min!=0){
			for (j=0;j<a;j++){
				num[i][j]=num[i][j]-min;
			}
		}
	}
	for (i=0;i<a;i++){
		min=num[0][i];
		for (j=0;j<a;j++){
			min=(min>num[j][i])?num[j][i]:min;
		}
		if (min!=0){
			for (j=0;j<a;j++){
				num[j][i]=num[j][i]-min;
			}
		}
	}
	temp=num[1][1];
	for (i=0;i<a;i++){
		for (j=1;j<a-1;j++){
			num[i][j]=num[i][j+1];
		}
	}
	for (i=0;i<a;i++){
		for (j=1;j<a-1;j++){
			num[j][i]=num[j+1][i];
		}
	}
	return temp+xiaoling(a-1);
}


int n;
int matrixx[110][110];
//??????
void Del(){
	for(int i=2;i<n;i++){
		for(int j=1;j<=n;j++){
			matrixx[i][j] = matrixx[i+1][j];
			}
		}
	for(int i=2;i<n;i++){
		for(int j=1;j<=n;j++){
			matrixx[j][i] = matrixx[j][i+1];
			}
		}
	return;
	}
int main(){
	cin>>n;
	int minnum;
	int sum;
	for(int s=1;s<=n;s++){
		sum=0;
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				cin>>matrixx[j][k];
				}
			}
		 for(int x;x<3000;x++){
				if(x==5){
					int y=0;
					y++;
					}
				}
		for(int i=1;i<n;i++){
			for(int j=1;j<=n;j++){
				for(int k=1;k<=n;k++){
					if(k==1) minnum = matrixx[j][k];
					else minnum = min(minnum,matrixx[j][k]);
					}
				for(int k=1;k<=n;k++){
					matrixx[j][k]-=minnum;
					}
				}
	 //????
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				if(k==1) minnum = matrixx[k][j];
				else minnum = min(minnum,matrixx[k][j]);
				}
			for(int k=1;k<=n;k++){
				matrixx[k][j]-=minnum;
				}
			}
			sum+=matrixx[2][2];
			Del();
			}
		cout<<sum<<endl;
		}

	return 0;
	}


/*
 * Matrix to zero.cpp
 *??:????
 *  Created on: 2012-11-27
 *      Author: ???
 */

int sum=0;                      //????sum
void change(int n);             //????
int number[100][100];           //????number
int main()
{
	int n,k,j;                  //????
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(k=0;k<n;k++)
			for(j=0;j<n;j++)
		    cin>>number[k][j]; //????
		sum=0;
		change(n);             //???? change
	}
	return 0;
}

void change(int n)             //????change
{
	int m;
	m=n;
	int min;                   //???
	if(m==1)                   //?????
		cout<<sum<<endl;       //??
	else
	{
	int i=0,j=0;
	for(i=0;i<m;i++)          //???
	  {
		min=number[i][0];
		for(j=0;j<m;j++)
			if(min>number[i][j])
				min=number[i][j];
		for(j=0;j<n;j++)
			number[i][j]=number[i][j]-min;
	   }
	for(i=0;i<m;i++)           //???
	  {
		min=number[0][i];
		for(j=0;j<m;j++)
			if(min>number[j][i])
				min=number[j][i];
		for(j=0;j<m;j++)
			number[j][i]=number[j][i]-min;
	  }

	sum=sum+number[1][1];     //??
	for(j=0;j<m;j++)        //??
		for(i=1;i<m-1;i++)
			number[i][j]=number[i+1][j];
	for(i=0;i<m-1;i++)
		for(j=1;j<m-1;j++)
			number[i][j]=number[i][j+1];
	m=m-1;
    change(m);                //??
	}
}


/*
 * juzhenguiling.cpp
 *
 *  Created on: 2010-12-2
 *      Author: Administrator
 */
int a[100][100];
int zero(int n,int sum){
	if(n!=1){
	    int min,i,j,array[n][n];
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				array[i][j]=a[i][j];
			}
		}
		    for(i=0;i<n;i++){//i???
		    min=array[i][0];
		    for(j=1;j<n;j++){
			    if(array[i][j]<min){
				    min=array[i][j];
			    }
		    }
		    if(min!=0){
			    for(j=0;j<n;j++){
				    array[i][j]=array[i][j]-min;
			    }
		    }
		   	    }
	   	for(i=0;i<n;i++){//i???
			min=array[0][i];
			for(j=1;j<n;j++){
				if(array[j][i]<min){
					min=array[j][i];
				}
			}
			if(min!=0)
			{
				for(j=0;j<n;j++){
					array[j][i]=array[j][i]-min;
				}
			}
					}
	sum=sum+array[1][1];
	for(i=0;i<n;i++){//i???
		for(j=1;j<n-1;j++){
			a[i][j]=array[i][j]=array[i][j+1];
		}
	}
	for(i=0;i<n-1;i++){//i???
		for(j=1;j<n-1;j++){
			array[j][i]=array[j+1][i];
		}
	}
	for(i=0;i<n-1;i++){
			for(j=0;j<n-1;j++){
				a[i][j]=array[i][j];
			}
		}
	return zero(n-1,sum);
	}
	if(n==1)  return sum;
}
int main(){
	int n;
	cin>>n;
	int sum=0,i,t,r;
	for(i=1;i<=n;i++){
		for(t=0;t<n;t++){
			for(r=0;r<n;r++){
				cin>>a[t][r];
			}
		}
		cout<<zero(n,sum)<<endl;
	}
	return 0;
}


void hang(int[] , int);
void xiaojie(int[], int);
int main()
{
	int n;
	cin >> n;
	int i, j, k, m;
	int min, sum;
	int a[101][101];
	for (k = 0; k < n; k++)
	{
		sum = 0;
		for (i = 0; i < n; i++)
		{
			for (j = 0; j < n; j++)
				cin >> a[i][j];
		}
		for (m = 0; m < n - 1; m++)
		{
			for (i = 0; i < n - m; i++)
				hang(a[i], n - m);
			for (j = 0; j < n - m; j++)
			{
				min = a[0][j];
				for (i = 0; i < n - m ;i++)
				{
					if (min > a[i][j])
						min = a[i][j];
				}
				for (i = 0; i < n - m; i++)
					a[i][j] = a[i][j] - min;
			}
			sum += a[1][1];
			for (i = 0; i < n - m; i++)
				xiaojie(a[i] , n - m);
			for (j = 0; j < n - 1 - m; j++)
			{
				for (i = 1; i < n - 1 - m; i++)
					a[i][j] = a[i + 1][j];
			}
		}
		cout << sum << endl;
	}
	return 0;
}
void hang(int a[], int leg)
{
	int min = a[0];
	int i;
	for (i = 0; i < leg; i++)
	{
		if (min > a[i])
			min = a[i];
	}
	for (i = 0; i < leg; i++)
		a[i] =  a[i] - min;
}
void xiaojie(int a[], int leg)
{
	int i;
	for (i = 1; i < leg; i++)
		a[i] = a[i + 1];
}


int cal(int matrix[][120],int n)
{
	 if (n==1) return(0);
	 int i,j,min,s;
	 for (i=0;i<n;i++)
	 {
		 min=32767;
		 for (j=0;j<n;j++)
		 {
			 if (matrix[i][j]<min) min=matrix[i][j];
		 }
		 for (j=0;j<n;j++)
			 matrix[i][j]=matrix[i][j]-min;
	 }
	 for (i=0;i<n;i++)
	 {
		 min=32767;
		 for (j=0;j<n;j++)
		 {
			 if (matrix[j][i]<min) min=matrix[j][i];
		 }
		 for (j=0;j<n;j++)
			 matrix[j][i]=matrix[j][i]-min;
	 }
	 s=matrix[1][1];
	 for (i=1;i<n-1;i++)
		 for (j=0;j<n;j++)
			 matrix[i][j]=matrix[i+1][j];
	 for (i=0;i<n-1;i++)
		 for (j=1;j<n-1;j++)
			 matrix[i][j]=matrix[i][j+1];

	 return(s+cal(matrix,n-1));
}

int main()
{
	 int n,i,j,k;
	 int a[120][120];
	 scanf("%d",&n);
	 for (i=1;i<=n;i++)
	 {
		for (j=0;j<n;j++)
			for (k=0;k<n;k++)
				scanf("%d",&a[j][k]);
		printf("%d\n",cal(a,n));
	 }
	 return(0);
}


int main()
{
	int n;
	cin>>n;
	for (int k=0;k<n;k++)
	{
		int a[100][100];
		for (int i=0;i<n;i++)
			for (int j=0;j<n;j++)
				cin>>a[i][j];
		int ans=0;
		for (int nn=n;nn>1;nn--)
		{
			for (int i=0;i<nn;i++)
			{
				int min=50000;
				for (int j=0;j<nn;j++)
					if (min>a[i][j]) min=a[i][j];
				for (int j=0;j<nn;j++)
					a[i][j]-=min;
			}
			for (int i=0;i<nn;i++)
			{
				int min=50000;
				for (int j=0;j<nn;j++)
					if (min>a[j][i]) min=a[j][i];
				for (int j=0;j<nn;j++)
					a[j][i]-=min;
			}
			ans+=a[1][1];
			for (int i=1;i<nn;i++)
				for (int j=0;j<nn;j++)
					a[i][j]=a[i+1][j];
			for (int j=1;j<nn;j++)
				for (int i=0;i<nn;i++)
					a[i][j]=a[i][j+1];
		}
		cout<<ans<<endl;
	}
	return 0;
}


int a[120][120];
int math(int);
int n;
int main()
{ int sum,b,c;
cin>>n;
c=n;
while(c--){for(int i=0;i<n;i++)
	           for(int j=0;j<n;j++)cin>>a[i][j];
             sum=math(n);

             b=n;
             while(b--){for(int i=2;i<b+1;i++)a[0][i-1]=a[0][i];
                for(int i=2;i<b+1;i++)a[i-1][0]=a[i][0];
                for(int i=2;i<b+1;i++)
                	for(int j=2;j<b+1;j++)a[i-1][j-1]=a[i][j];
                if(b==1)break;
                sum=math(b)+sum;

             }
                cout<<sum<<endl;

             }

return 0;
}
int math(int x)
{int min[x];
for(int i=0;i<x;i++)min[i]=a[i][0];

	for(int i=0;i<x;i++)
		for(int j=0;j<x;j++){if(a[i][j]<min[i])min[i]=a[i][j];}

	for(int i=0;i<x;i++)
		for(int j=0;j<x;j++)a[i][j]=a[i][j]-min[i];

int minl[x];
for(int i=0;i<x;i++)minl[i]=a[0][i];
for(int i=0;i<x;i++)
	for(int j=0;j<x;j++){if(a[j][i]<minl[i])minl[i]=a[j][i];}

for(int i=0;i<x;i++)
	for(int j=0;j<x;j++)a[i][j]=a[i][j]-minl[j];

return a[1][1];
}


int n=0;int juzhen[101][101]={0},sum=0,hang=0;
void hangxiao();
void liexiao();
void xiaojian();
void hangxiao(){
	int i,j,xiao=1000;
	for(i=0;i<hang;i++){
		for(j=0;j<hang;j++){
			if(xiao>juzhen[i][j]){
				xiao=juzhen[i][j];
			}
		}
		for(j=0;j<hang;j++){
			juzhen[i][j]-=xiao;
		}
		xiao=1000;
	}
}
void liexiao(){
	int i,j,xiao=1000;
	for(j=0;j<hang;j++){
		for(i=0;i<hang;i++){
			if(xiao>juzhen[i][j]){
				xiao=juzhen[i][j];
			}
		}
		for(i=0;i<hang;i++){
			juzhen[i][j]-=xiao;
		}
		xiao=1000;
	}
}
void xiaojian() {
	int i,j,xiao=0;
	for(i=2;i<hang;i++){
		for(j=0;j<hang;j++){
			juzhen[i-1][j]=juzhen[i][j];
		}
	}
	for(j=2;j<hang;j++){
		for(i=0;i<hang;i++){
			juzhen[i][j-1]=juzhen[i][j];
		}
	}
}

int main(){
	int a ;
	cin >> a;
	n=a;

	while(a>0){
		memset(juzhen,0,sizeof(juzhen));
		sum=0;
		int b,c,d,e,i,j;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin >> juzhen[i][j];
		hang=n;
		while(hang>1){
			hangxiao();
			liexiao();
			sum+=juzhen[1][1];
			xiaojian();
			hang--;
		}
		cout <<sum <<endl;
		a--;
	}
	return 0;
}


int main()
{
	int a[100][100];
	int n;
	int sum,Min;
	cin >> n;
	for (int num = 0; num < n; num++) //n???
	{
		sum = 0;
		for (int i = 0; i < n; i++)
			for (int j = 0; j < n; j++)
				cin >> a[i][j];
		for (int x = 1; x < n; x++) //n-1???
		{
			for (int i = 0; i < n; i++)//hang gui ling
			{
				Min = 10000;
				for (int col = 0; col < n; col++)
					if (a[i][col] >= 0)
						Min = Min < a[i][col] ? Min : a[i][col];
				for (int col = 0; col < n; col++)
					a[i][col] -= Min;
			}
			for (int i = 0; i < n; i++)//lie gui ling
			{
				Min = 10000;
				for (int row = 0; row < n; row++)
					if (a[row][i] >= 0)
						Min = Min < a[row][i] ? Min : a[row][i];
				for (int row = 0; row < n; row++)
					a[row][i] -= Min;
			}
			sum += a[x][x];
			for (int i = 0; i < n; i++)
				a[x][i] = -1;
			for (int i = 0; i < n; i++)
				a[i][x] = -1; //-1 dai biao mei you zhe yi hang
		}
		cout << sum << endl;
	}
	return 0;
}


//
//  main.cpp
//  square
//
//  Created by blues cookie on 13-1-12.
//  Copyright (c) 2013? blues cookie. All rights reserved.
//

int a[100][100];
int findmin(int c,int low,int n)
{
    int min;
    if(c==1)//?hang??
    {
        int i;min=a[low][0];
        for(i=0;i<n;i++)
        {
            if(a[low][i]<min) min=a[low][i];
        }
    }
    if(c==0)//min lie
    {
        int i;min=a[0][low];
        for(i=0;i<n;i++)
        {
            if(a[i][low]<min) min=a[i][low];
        }
    }
    return min;
}
int dec(int n,int sum)
{
    if(n==1) return sum;
    int i,j,k,min;
    for(i=0;i<n;i++)
    {
        min=findmin(1,i,n);
        for(j=0;j<n;j++) a[i][j]=a[i][j]-min;
    }
    for(i=0;i<n;i++)
    {
        min=findmin(0,i,n);
        for(j=0;j<n;j++) a[j][i]=a[j][i]-min;
    }//??????
    sum=sum+a[1][1];
    for(i=0;i<n;i++)
        for(j=1;j<n-1;j++)
        {
            a[j][i]=a[j+1][i];
        }
    for(i=0;i<n;i++)
        for(j=1;j<n-1;j++)
        {
            a[i][j]=a[i][j+1];
        }
    return dec(n-1,sum);
}
int main(int argc, const char * argv[])
{
    int n;
    cin>>n;
    int i,j,s,t;
    for(int k=1;k<=n;k++)
    {
        for(i=0;i<n;i++)
            for(j=0;j<n;j++) cin>>a[i][j];//input suqare
        cout<<dec(n,0)<<endl;
    }
    return 0;

}


int n,m,mini;
int a[110][110];
void findmin(int x, int y, int dx, int dy) {
	if (x==m) return;
	if(y==m) return;
	if (a[x][y] < mini)
		mini = a[x][y];
	findmin(x+dx,y+dy,dx,dy);
	a[x][y]= a[x][y]-mini;
}
void kill() {
	int i, j;
	for(i=0;i<m;i++)
	for(j=1;j<m;j++)
	a[j][i] = a[j+1][i];
	for(i=0;i<m;i++)
	for(j=1; j<m; j++)
	a[i][j] = a[i][j + 1];

}
int main() {
	int i, j, sum,k;
	cin>>n;
	for (k=0;k<n;k++)
	{
		for (i=0;i<n;i++)
			for (j=0;j<n;j++)
				cin >> a[i][j];
		for (sum=0,m=n;m>=1;m--)
		{
			for (i=0;i<2*m;i++)
			{
				mini = 10000;
				findmin((i%m)*(1-i/m),(i%m)*(i/m),i/m,1-i/m);
			}
			sum=sum+a[1][1];
			kill();
		}
		cout <<sum<<endl;
	}
}


/*
 * juzhenguiling.cpp
 *
 *  Created on: 2012-11-18
 *      Author: ??
 * ?????????
 */

int a[110][110], n, sum;
void calculate(int t) {
	int i,j,minimum;
	for (i =1; i <= n; i++) {
		minimum = a[i][1];
		for (j = t; j <= n; j++)//??????
			if (minimum > a[i][j])
				minimum = a[i][j];
		a[i][1]-=minimum;//??????
		for (j = t; j <= n; j++)
			a[i][j]-=minimum;

	}
  	for (i = 1; i <= n; i++) {//??????
		minimum = a[1][i];
		for (j = t; j <= n; j++)
			if (minimum > a[j][i])
				minimum = a[j][i];

			a[1][i]-= minimum;
		for (j = t; j <= n; j++)//??????
			a[j][i]-=minimum;

	}
    sum+=a[t][t];
	if (t<n) calculate(t+1);//??

}
int main() {
	int i, j, k;
	cin >> n;
	for (k = 1; k <= n; k++) {
		sum = 0;//????
		for (i = 1; i <= n; i++)
		for (j = 1 ;j <= n; j++)
		{
			cin >> a[i][j];

		}
		calculate(2);
		cout << sum << endl;
	}
	return 0;
}


enum{size=100};

void gotozero(int num, int n,int a[size][size][size],int minrow[size][size],int mincol[size][size])
{
	int i,j,k;

	for(i=0;i<num;i++)
	{
		for(j=0;j<n;j++)
		{
			minrow[i][j]=a[i][j][0];
			for(k=0;k<n;k++)	if(minrow[i][j]>a[i][j][k])		minrow[i][j]=a[i][j][k];
		}
	}

	for(i=0;i<num;i++)
	{
		for(j=0;j<n;j++)	for(k=0;k<n;k++)	a[i][j][k]-=minrow[i][j];
	}

	for(i=0;i<num;i++)
	{
		for(j=0;j<n;j++)
		{
			mincol[i][j]=a[i][0][j];
			for(k=0;k<n;k++)	if(mincol[i][j]>a[i][k][j])		mincol[i][j]=a[i][k][j];
		}
	}

	for(i=0;i<num;i++)
	{
		for(j=0;j<n;j++)	for(k=0;k<n;k++)	a[i][k][j]-=mincol[i][j];
	}
}

void cut(int num, int n,int a[size][size][size],int minrow[size][size],int mincol[size][size])
{
	int i,j,k;
	for(i=0;i<num;i++)
	{
		for(j=0;j<n;j++)
		{
			for(k=2;k<n;k++)	a[i][j][k-1]=a[i][j][k];
		}
	}

	for(i=0;i<num;i++)
	{
		for(k=0;k<n;k++)
		{
			for(j=2;j<n;j++)	a[i][j-1][k]=a[i][j][k];
		}
	}
}

void main()
{
	int i,j,k,n,num;
	int a[size][size][size]={0},minrow[size][size]={0},sum[size]={0},mincol[size][size]={0};

	//¶ÁÈëÊý¾Ý
	scanf("%d",&n);
	num=n;
	for(i=0;i<n;i++)	for(j=0;j<n;j++)	for(k=0;k<n;k++)	scanf("%d",&a[i][j][k]);

	while(n>1)
	{
		gotozero(num,n,a,minrow,mincol);
		for(i=0;i<num;i++)	sum[i]+=a[i][1][1];//´æ´¢
		cut(num,n,a,minrow,mincol);
		n--;
	}

	for(i=0;i<num;i++)			printf("%d\n",sum[i]);
}


int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
            int a[100][100];
            for(int i=0;i<n;i++)
            {
                    for(int j=0;j<n;j++)
                    {
                            cin>>a[i][j];
                    }
            }
            int sum=0;
            for(int size=n;size>=2;size--)
            {
                for(int i=0;i<size;i++)
                {
                        int min=1000000;
                        for(int j=0;j<size;j++)
                        {
                                if(a[i][j]<min)
                                min=a[i][j];
                        }
                        for(int j=0;j<size;j++)
                        {
                                a[i][j]-=min;
                        }
                }
                for(int j=0;j<size;j++)
                {
                        int min=1000000;
                        for(int i=0;i<size;i++)
                        {
                                if(a[i][j]<min)
                                min=a[i][j];
                        }
                        for(int i=0;i<size;i++)
                        {
                                a[i][j]-=min;
                        }
                }
                sum+=a[1][1];
                for(int i=1;i<size-1;i++)
                {
                        for(int j=0;j<size;j++)
                        {
                                a[i][j]=a[i+1][j];
                        }
                }
                for(int j=1;j<size-1;j++)
                {
                        for(int i=0;i<size-1;i++)
                        {
                                a[i][j]=a[i][j+1];
                        }
                }
            }
            cout<<sum<<endl;
    }
    return 0;
}


int main()
{
	int N;scanf("%d",&N);
	for(int n=0;n<N;n++)
	{
	int Ma[N][N];
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
		scanf("%d",&Ma[i][j]);
	}
	int SUM=0;
	for(int Now=1;Now<N;Now++)
	{
		int MINR=Ma[0][0];
		for(int j=Now;j<N;j++)if(MINR>Ma[0][j]) MINR=Ma[0][j];
		Ma[0][0]-=MINR;
		for(int j=Now;j<N;j++)Ma[0][j]-=MINR;
		for(int i=Now;i<N;i++)
		{
			int MIR=Ma[i][0];
			for(int j=Now;j<N;j++)if(MIR>Ma[i][j]) MIR=Ma[i][j];
			Ma[i][0]-=MIR;
			for(int j=Now;j<N;j++)Ma[i][j]-=MIR;
		}
		int MINC=Ma[0][0];
		for(int j=Now;j<N;j++)if(MINC>Ma[j][0]) MINC=Ma[j][0];
		Ma[0][0]-=MINC;
		for(int j=Now;j<N;j++)Ma[j][0]-=MINC;
		for(int i=Now;i<N;i++)
		{
			int Mic=Ma[0][i];
			for(int j=Now;j<N;j++)if(Mic>Ma[j][i]) Mic=Ma[j][i];
			Ma[0][i]-=Mic;
			for(int j=Now;j<N;j++)Ma[j][i]-=Mic;
		}
		SUM+=Ma[Now][Now];
	}
	printf("%d\n",SUM);
	}
}


int i,j,t;
int n;
int sum;	int a[100][100];
int f(int x)
{for(int ii=0;ii<x;ii++)
{int minn=a[ii][0];
for(int ij=0;ij<x;ij++)
	if(a[ii][ij]<minn)
		minn=a[ii][ij];
for(int ij=0;ij<x;ij++)
	a[ii][ij]=a[ii][ij]-minn;
}
}
int g(int x)
{for(int ii=0;ii<x;ii++)
{int minn=a[0][ii];
for(int ij=0;ij<x;ij++)
	if(a[ij][ii]<minn)
		minn=a[ij][ii];
for(int ij=0;ij<x;ij++)
	a[ij][ii]=a[ij][ii]-minn;
}
}
int h(int x)
{
	sum=sum+a[1][1];
	for(int ii=0;ii<x;ii++)
	{for(int jj=1;jj<x;jj++)
		a[ii][jj]=a[ii][jj+1];
	}
	for(int ii=0;ii<x;ii++)
	{for(int jj=1;jj<x;jj++)
		a[jj][ii]=a[jj+1][ii];
	}
}
int main()
{

	cin>>n;
	for(int qqq=0;qqq<n;qqq++)
	{sum=0;
		for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		{
			cin>>a[i][j];
		}
		for(i=n;i>1;i--)
		{
			f(i);g(i);h(i);
		}
		cout<<sum<<endl;
	}
}


//============================================================================
// Name        : 2.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

void putout(int a[N][200],int num)
{
	for(int i=0;i<num;i++)
	{
		for(int j=0;j<num;j++)
			cout<<setw(3)<<a[i][j];
		cout<<endl;
	}
}

void cut1 (int a[N][N],int b,int num)//¶ÔÃ¿ò»DD½øDD1éáã
{
	int a1[N][N];
	memcpy(a1,a,N*N*sizeof(int));
	for(int i=num-2;i>=0;i--)
		a1[b][i]=min(a1[b][i],a1[b][i+1]);
	for(int i=0;i<num;i++)
		a[b][i]-=a1[b][0];
}

void cut2 (int a[N][N],int b,int num)//¶ÔÃ¿ò»áD½øDD1éáã
{
	int a1[N][N];
	memcpy(a1,a,N*N*sizeof(int));
	for(int i=num-2;i>=0;i--)
		a1[i][b]=min(a1[i][b],a1[i+1][b]);
	for(int i=0;i<num;i++)
		a[i][b]-=a1[0][b];
}

int remain(int a[N][N],int num,int out)//¶ÔÃ¿ò»¸ö¾ØÕó½øDD1éáãoíÏû¼õ?Ä2ù×÷?¬2?¼ÆËãout
{
	for(int i=0;i<num;i++)//¶ÔÃ¿ò»DD1éáã
		cut1(a,i,num);
	for(int i=0;i<num;i++)//¶ÔÃ¿ò»áD1éáã
		cut2(a,i,num);
	out=out+a[1][1];//àÛ¼óa[1][1]
	for(int i=1;i<num-1;i++)//Ïû¼õ?ú¶tDD
		for(int j=0;j<num;j++)
			a[i][j]=a[i+1][j];
	for(int i=1;i<num-1;i++)//Ïû¼õ?ú¶táD
		for(int j=0;j<num-1;j++)
			a[j][i]=a[j][i+1];
	num--;//¾ØÕóéùò»½×
	if(num==1)
		return out;
	else
		return remain(a,num,out);
}

int main() {
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int a[N][N];//ÖØÖÃa[200][200]
		memset(a,0,N*N*sizeof(int));
		for(int i=0;i<n;i++)//êäèë¾ØÕó
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		int p=remain(a,n,0);//¼ÆËãa[1][1]?Äoí
		cout<<p<<endl;
	}
	return 0;
}


//
//  main.cpp
//  ?????????
//
//  Created by ?? on 12-11-20.
//  Copyright (c) 2012? ??. All rights reserved.
//

int a[100][100];
void guiling(int n)
{
    for (int i = 0; i < n; i++)
    {
        int min = a[i][0];
        for (int j = 1; j < n; j++) if (a[i][j] < min)
            min = a[i][j];
        for (int j = 0; j < n; j++) a[i][j] -= min;
    }
    for ( int i = 0; i < n; i++)
    {
        int min = a[0][i];
        for (int j = 1; j < n; j++)
            if (a[j][i] < min) min = a[j][i];
        for (int j = 0; j < n; j++) a[j][i] -= min;
    }
}
void xiaojian(int n)
{
    for (int i = 1; i < n - 1; i++)     // ?n??????n-1???
    {
        a[0][i] = a[0][i + 1]; a[i][0] = a[i + 1][0];
        for (int j = 1; j < n - 1; j++)
            a[i][j] = a[i + 1][j + 1];
    }
}
int Sum(int n)
{
    if (n == 1)
        return 0;
    int k = 0;
    guiling(n);
    k += a[1][1];
    xiaojian(n);
    n--;
    return k + Sum(n); // ???????
}
int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            for (int k = 0; k < n; k++)
                cin >> a[j][k];

        cout << Sum(n) << endl;
    }
    return 0;
}


// ?????????.cpp : Defines the entry point for the console application.
//

void shuru( int);
void guiling( int );

int num[100][100] = {0};
int sum = 0;

int main()
{
	int n = 0;
	int i = 0;

	cin >> n;
	for( i = 1;i <= n;i++ )
	{
		sum = 0;
		shuru(n);
	}

	return 0;
}

void shuru( int n)
{
	int i = 0;
	int j = 0;

	for( i = 0;i < n;i++ )
		for( j =0;j < n;j++ )
			cin >> num[i][j];

		guiling (n);

}

void guiling( int n )
{
	if( n == 1)
		cout << sum << endl;
	else
	{
		int min = 0;

		int t = 0;
		int i = 0;

		for(  i = 0;i < n;i++ )
		{
			min = num[i][0];

			for( t = 0;t < n;t ++)
			{
				if( min > num[i][t] )
					min = num[i][t];
			}

			for( t = 0;t < n;t++ )
			{
				num[i][t] -= min;
			}
		}

		for( i = 0;i < n;i++ )
		{
			min = num[0][i];

			for( t = 0;t < n;t ++)
			{
				if( min > num[t][i] )
					min = num[t][i];
			}

			for( t = 0;t < n;t++ )
			{
				num[t][i] -= min;
			}
		}

		sum += num[1][1];

		for( i = 0;i < n;i++ )
			for( t = 2;t < n;t++ )
				num[i][t - 1] = num[i][t];

		for( i = 0;i < n;i++ )
			for( t = 2;t < n;t++ )
				num[t - 1][i] = num[t][i];

		guiling( n - 1 );
	}
}


int n = 0, a[101][101] = {{0}}, sum = 0, k = 0;
int (*p)[101] = a;
void zerorow(int k)
{
	int min = 0;
	for (int i = 0; i < k; i ++)//every row
	{
		min = *(*(p+i));
		for (int j = 1; j < k; j ++)//find min
			if ( *(*(p+i)+j) < min)
				min = *(*(p+i)+j);
		if (min)
			for (int j = 0; j < k; j ++)//to zero
				*(*(p+i)+j) -= min;
	}
}
void zerocol(int k)
{
	int min = 0;
	for (int i = 0; i < k; i ++)//every col
	{
		min = *(*(p)+i);
		for (int j = 1; j < k; j ++)//find min
			if ( *(*(p+j)+i) < min)
				min = *(*(p+j)+i);
		if (min)
			for (int j = 0; j < k; j ++)//to zero
				*(*(p+j)+i) -= min;
	}
}
void jian(int k)
{
	for (int i = 2; i < k; i ++)//row move up
		for (int j = 0; j < k; j ++)
			*(*(p+i-1)+j) = *(*(p+i)+j);
	for (int j = 2; j < n; j ++)//col move left
		for (int i = 0; i < k - 1; i ++)
			*(*(p+i)+j-1) = *(*(p+i)+j);
}
int main()
{
	cin >> n;//cin
	while(cin >> *(*(p)))
	{
		sum = 0;
		for (int i = 0; i < n; i ++)
			for (int j = 0; j < n; j ++)
			{
				if (i + j)
					cin >> *(*(p+i)+j);
			}
		for (k = n; k > 1; k --)
		{
			zerorow(k);
			zerocol(k);
			sum += *(*(p+1)+1);
			jian(k);
		}
		cout << sum << endl;
	}
	return 0;
}


int a[105][105];
int guiling(int n);
void xiaojian(int n);

int main()
{
	int n, i, j, k;
	cin >> n;
	for(k = 0; k < n; k++)
	{
	    memset(a, 0, sizeof(a));
		for(i = 0; i < n; i++)
			for(j = 0; j < n; j++)
				cin >> a[i][j];
			cout << guiling(n) << endl;
	}

	return 0;
}
int guiling(int n)
{
	for(int i = 0; i < n; i++)
	{
        int min = a[i][0];
        for (int j = 1; j < n; j++)
		{
            if (a[i][j] < min)
                min = a[i][j];
		}
        for (int j = 0; j < n; j++)
            a[i][j] -= min;
	}
	for (int i = 0; i < n; i++)
    {
        int min = a[0][i];
        for (int j = 1; j < n; j++)
		{
            if (a[j][i] < min)
            min = a[j][i];
		}
        for (int j = 0; j < n; j++)
            a[j][i] -= min;
	}
	int k = a[1][1];
	if(n == 2)
		return k;
	else
	{
		xiaojian(n);
		return k + guiling(n - 1);
	}
}
void xiaojian(int n)
{
    for (int i = 1; i < n - 1; i++)
    {
        a[0][i] = a[0][i + 1];
        a[i][0] = a[i + 1][0];
        for (int j = 1; j < n - 1; j++)
            a[i][j] = a[i + 1][j + 1];
    }
}


int main()
{
    int n;cin>>n;
    int m=n;
    int t=n;
    while(m>0)
    {int a[100][100];
    n=t;
     m=m-1;
     for(int i=0;i<n;i++)
     for(int j=0;j<n;j++)
     cin>>a[i][j];
     int sum=0;
     while(n>1)
     {
     for(int i=0;i<n;i++)
     {int hmin=a[i][0];
     for(int j=0;j<n;j++)
     {
             if(a[i][j]<hmin) hmin=a[i][j];
      }

            for(int j=0;j<n;j++)
            a[i][j]-=hmin;
      }
       for(int i=0;i<n;i++)
     {int lmin=a[0][i];
     for(int j=0;j<n;j++)
     {
             if(a[j][i]<lmin) lmin=a[j][i];
     }
            for(int j=0;j<n;j++)
            a[j][i]-=lmin;   //guiling
      }
      sum+=a[1][1];
      for(int i=0;i<n;i++)
      for(int j=1;j<n-1;j++)
      a[i][j]=a[i][j+1]  ;
     for(int i=0;i<n-1;i++)
      for(int j=1;j<n-1;j++)
      a[j][i]=a[j+1][i];
      n=n-1;
      }
      cout<<sum<<endl;
      }
      return 0;
      }


int sum=0;
int a[100][100]={0};
void temp(int n)
{
	if(n==1)return;
	for( int i=0;i<n;i++)
		{
			int miner=1000;
			for(int j=0;j<n;j++)
				if (miner>a[i][j])
					miner=a[i][j];
			for(int j=0;j<n;j++)
				a[i][j]=a[i][j]-miner;
		}
		for( int j=0;j<n;j++)
		{
			int miner=1000;
			for(int i=0;i<n;i++)
				if (miner>a[i][j])
					miner=a[i][j];
			for(int i=0;i<n;i++)
				a[i][j]=a[i][j]-miner;
		}
		sum=sum+a[1][1];
		for ( int i=0;i<n;i++)
		   for( int j=1;j<n-1;j++)
		      a[i][j]=a[i][j+1];
		for(int j=0;j<n-1;j++)
			for( int i=1;i<n-1;i++)
				a[i][j]=a[i+1][j];
		temp(n-1);

}
int main()
{
	int n;
	cin>>n;
	for ( int m=0;m<n;m++)
	{
	    sum=0;
		for( int i=0;i<n;i++)
			for( int j=0;j<n;j++)
				cin>>a[i][j];
		temp(n);
		cout<<sum<<endl;
    }

	return 0;

}


/*???????
1000010098
???*/
void change(int a[][100], int n, int step, int *sum)
{
	int i, j, min, g;
	for (i = 0; i < n; i++)
	{
		g = 0;
		if(i >= 1 && i < step)
		continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			if(a[i][j] == 0)
			{
				g = 1;
				break;
			}
			if(j == 0)
				min = a[i][j];
			if(a[i][j] < min)
				min = a[i][j];
		}
		if(g == 1)
			continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			a[i][j] -= min;
		}
	}
	for (i = 0; i < n; i++)
	{
		g = 0;
		if(i >= 1 && i < step)
		continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			if(a[j][i] == 0)
			{
				g = 1;
				break;
			}
			if(j == 0)
				min = a[j][i];
			if(a[j][i] < min)
				min = a[j][i];
		}
		if(g == 1)
			continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			a[j][i] -= min;
		}
	}
	*sum += a[step][step];
	return;
}

int main ()
{
	int n, i, j , k, a[100][100], sum;
	cin >> n;
	for(i = 1; i <= n; i++)
	{
		sum = 0;
		memset(a,0,40000);
		for(j = 0; j < n; j++)
		{
			for(k = 0; k < n; k++)
			{
				cin >> a[j][k];
			}
		}
		for(j = 1; j < n; j++)
		{
			change(a,n,j,&sum);
		}
		cout << sum << endl;
	}
	return 0;
}


int n,array[101][101],sum[101]={0},k;
void cut(int m)
{
	int p,q,min;
	for(p=0;p<n-m;p++)
	{
		min=array[p][0];
		for(q=1;q<n-m;q++)
			if(array[p][q]<min)
				min=array[p][q];
		for(q=0;q<n-m;q++)
			array[p][q]=array[p][q]-min;
	}
    for(p=0;p<n-m;p++)
	{
		min=array[0][p];
		for(q=1;q<n-m;q++)
			if(array[q][p]<min)
				min=array[q][p];
		for(q=0;q<n-m;q++)
			array[q][p]=array[q][p]-min;
	}
	sum[k]=sum[k]+array[1][1];
	for(p=1;p<n-m-1;p++)
	{
		array[0][p]=array[0][p+1];
		array[p][0]=array[p+1][0];
	}
	for(p=1;p<n-m-1;p++)
		for(q=1;q<n-m-1;q++)
			array[p][q]=array[p+1][q+1];
}
int main()
{
	int i,j;
		scanf("%d",&n);
	for(k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&array[i][j]);
		for(i=0;i<n-1;i++)
			cut(i);
	}
	for(k=0;k<n;k++)
		printf("%d\n",sum[k]);

	return 0;
}


int sum=0;
int w=0;
int q[100][100];

void op(int n)
{
	if(n!=1)
	{
	int rm[n],cm[n];//rm[i] is the minimum of row[i][..]
	for(int i=0;i<n;i++)
	{
		rm[i]=q[i][0];
		cm[i]=q[0][i];// initialize
	}

	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(rm[i]>=q[i][j])
			{
				rm[i]=q[i][j];
			}
		}
	}// find the minimum of row

	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			q[i][j]=q[i][j]-rm[i];//-minimum
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(cm[j]>=q[i][j])
			{
				cm[j]=q[i][j];// find the maximum of column
			}
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			q[i][j]=q[i][j]-cm[j];//-minimum
		}
	}

	sum+=q[1][1];//add before elimination
	for(int i=0;i<n;i++)
	{
		for(int j=1;j<n;j++)
		{
			q[i][j]=q[i][j+1];// shrinking
		}
	}
	for(int i=1;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			q[i][j]=q[i+1][j];//shrinking
		}
	}
	op(n-1);
}

}

int main()
{
	int n;
	cin>>n;
	for(int s=1;s<=n;s++)
	{
		for(int a=0;a<n;a++)
		{
			for(int b=0;b<n;b++)
			{
				cin>>q[a][b];
			}
		}
		op(n);
		cout<<sum<<endl;
		sum=0;//initializing
	}
	return 0;
}


//#include<fstream>

int main(){

//	ifstream cin;
//	cin.open("6.in");

	int n;
	int sum;
	int min;
	cin>>n;

	int m[n][n][n];

	for(int k=0;k<n;k++){
		for(int x=0;x<n;x++){
			for(int y=0;y<n;y++){
				cin>>m[k][x][y];
			}
		}

		sum=0;

		for(int l=1;l<n;l++){

			for(int x=0;x<n;x++){
				min=*min_element(m[k][x],m[k][x]+n);
				for(int y=0;y<n;y++){
					m[k][x][y]-=min;
				}
			}

			for(int y=0;y<n;y++){
				min=m[k][0][y];
				for(int x=1;x<n;x++){
					if(m[k][x][y]<min) min=m[k][x][y];
				}
				for(int x=0;x<n;x++){
					m[k][x][y]-=min;
				}
			}

			sum+=m[k][l][l];

			for(int i=0;i<n;i++){
				m[k][l][i]=m[k][0][i];
				m[k][i][l]=m[k][i][0];
			}
		}
		cout<<sum<<endl;
	}
}


int a[101][101], n;
int rowmin(int i)
{
	int minr = INT_MAX;
	for(int i1 = 0; i1 < n; i1++)
	{
		if(a[i][i1] < minr && a[i][i1] >= 0)
		{minr = a[i][i1];}
	}
	return minr;
}
int colmin(int i)
{
	int minc = INT_MAX;
	for(int i1 = 0; i1 < n; i1++)
	{
		if(a[i1][i] < minc && a[i1][i] >= 0)
		{minc = a[i1][i];}
	}
	return minc;
}
int main()
{
	int t, k, sum, min, minc, i, j;
	cin >> n;
	for(t = 1; t <= n; t++)
	{
		k = 1;
		sum = 0;
		for(i = 0; i < n; i++)
		{
			for(j = 0; j < n; j++)
			{cin >> a[i][j];}
		}
		while(k < n)
		{
			for(i = 0; i < n; i++)
			{
				min = rowmin(i);
				for(j = 0; j < n; j++)
				{a[i][j] -= min;}
			}
			for(i = 0; i < n; i++)
			{
				min = colmin(i);
				for(j = 0; j < n; j++)
				{a[j][i] -= min;}
			}
			sum += a[k][k];
			for(i = 0; i < n; i++)
			{a[i][k] = -1;}
			for(i = 0; i < n; i++)
			{a[k][i] = -1;}
			k++;
		}
		cout << sum << endl;
	}
	return 0;
}


int a[100][100];
void q(int l)
{
	for(int g=0;g<l;g++)
		for(int h=1;h<l-1;h++)
			a[g][h]=a[g][h+1];
	for(int g=0;g<l-1;g++)
		for(int h=1;h<l-1;h++)
			a[h][g]=a[h+1][g];
}
int f(int y)
{
	int min,now;
	if(y==1)
		return 0;
	for(int g=0;g<y;g++)
	{
		min=a[g][0];
		for(int h=1;h<y;h++)
			if(a[g][h]<min)
				min=a[g][h];
		for(int h=0;h<y;h++)
			a[g][h]-=min;
	}
	for(int g=0;g<y;g++)
	{
		min=a[0][g];
		for(int h=1;h<y;h++)
			if(a[h][g]<min)
				min=a[h][g];
		for(int h=0;h<y;h++)
			a[h][g]-=min;
	}
	now=a[1][1];
	q(y);
	return now+f(y-1);
}
int main()
{
	int n;
	cin>>n;
	for(int k=1;k<=n;k++)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		cout<<endl<<f(n);
	}
	return 0;
}


int zhi(int num[][100] , int n );
int main()
{
	int in , i , j , k , cal[100][100]={0};
	cin >> in ;
	for (k = 0 ; k < in ; k++)
	{
		for(i = 0 ; i < in ; i++)
			for(j = 0 ; j < in ; j++)
				cin >> cal[i][j];
				cout << zhi (cal , in) << endl;
	}
	return 0 ;
}
int zhi(int num[][100] , int n)
{
	int i , j , min[100] , sum = 0 , temp ;
	if ( n == 1 )	return 0 ;
	for(i = 0 ; i < n ; i++)
	{
		min[i] = num[i][0];
		for(j = 0 ; j < n ; j++)
			if(num[i][j] < min[i])	min[i] = num[i][j] ;
	}
	for(i = 0 ; i < n ; i++)
		for(j = 0 ; j < n ; j++)
			num[i][j] = num[i][j] - min[i] ;
	for(j = 0 ; j < n ; j++)
	{
		min[j] = num[0][j];
		for(i = 0 ; i < n ; i++)
			if(num[i][j] < min[j])	min[j] = num[i][j] ;
	}
	for(j = 0 ; j < n ; j++)
		for(i = 0 ; i < n ; i++)
			num[i][j] = num[i][j] - min[j] ;
	temp = num[1][1] ;
	for(i = 0 ; i < n ; i ++)
		for (j = 1 ; j < n ; j++)
			num[i][j] = num[i][j+1] ;
	for(j = 0 ; j < n ; j++)
		for (i = 1 ; i < n ; i++)
			num[i][j] = num[i+1][j];
	sum = zhi( num , n-1) + temp ;
	return sum ;
}


/*
 * Matrix.cpp
 *
 *  Created on: 2010-12-31
 *      Author: user
 */

int matrix[100][100], sum = 0;

void SUM(int n) {
	if (n == 1)
		return;
	int i, j;

	//??
	//??
	int min;
	for (i = 0; i < n; i++) {
		min = matrix[i][0];
		for (j = 0; j < n; j++) {
			if (min > matrix[i][j]) {
				min = matrix[i][j];
			}
		}

		for (j = 0; j < n; j++) {
			matrix[i][j] -= min;
		}
	}
	//??
	for (j = 0; j < n; j++) {
		min = matrix[0][j];
		for (i = 0; i < n; i++) {
			if (min > matrix[i][j]) {
				min = matrix[i][j];
			}
		}

		for (i = 0; i < n; i++) {
			matrix[i][j] -= min;
		}
	}

	sum += matrix[1][1];

	//???
	for (j = 1; j < n - 1; j++)
		matrix[0][j] = matrix[0][j + 1];

	for (i = 1; i < n - 1; i++)
		matrix[i][0] = matrix[i + 1][0];

	for (i = 1; i < n - 1; i++) {
		for (j = 1; j < n - 1; j++) {
			matrix[i][j] = matrix[i + 1][j + 1];
		}
	}

	SUM(n - 1);

}

int main() {
	int n, i, j, k;
	cin >> n;

	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++)
			for (k = 0; k < n; k++)
				cin >> matrix[j][k];

		SUM(n);
		cout << sum << endl;
		sum = 0;
	}

	return 0;
}


int change( int a[][100], int n );

int main()
{
		int n, k = 0;
		int a[100][100], sum = 0;
		int m = 0; //count the number of cut the matrix

		cin >> n;
		while ( k < n )
		{
				sum = 0;
			  m = 0;
				for ( int i = 0; i < n; i++ )
				{
					for ( int j = 0; j < n; j++ )
					{
							cin >> a[i][j];
					}
				}

				while ( m < n - 1 )
				{
					sum += change( a, n - m );

					for ( int i = 0; i < n - m; i++ ) //cut the matrix's colomn
					{
							for ( int j = 2; j < n - m; j++ )
							{
									a[i][j-1] = a[i][j];
							}
					}

					for ( int j = 0; j < n - m; j++ ) //cut the matrix's row
					{
							for ( int i = 2; i < n - m; i++ )
							{
									a[i-1][j] = a[i][j];
							}
					}
					m++;
				}

				cout << sum << endl;

			k++;
		}

		return 0;
}

int change( int a[][100], int n ) //matrix to zero= =
{
		int minx[100], miny[100]; //minx is the minum of the row, miny is the minum of the column
		int num;

		for ( int l = 0; l < 100; l++ )
		{
				minx[l] = INT_MAX;
				miny[l] = INT_MAX;
		}

		for ( int i = 0; i < n; i++ )
		{
				for ( int j = 0; j < n; j++ )
				{
						if ( a[i][j] < minx[i] )
							minx[i] = a[i][j];
				}
		}

		for ( int i = 0; i < n; i++ )
		{
				for ( int j = 0; j < n; j++ )
				{
						a[i][j] -= minx[i];
				}
		}

		for ( int i = 0; i < n; i++ )
		{
				for ( int j = 0; j < n; j++ )
				{
						if ( a[i][j] < miny[j] )
							miny[j] = a[i][j];
				}
		}

		for ( int i = 0; i < n; i++ )
		{
				for ( int j = 0; j < n; j++ )
				{
						a[i][j] -= miny[j];
				}
		}
		num = a[1][1];
		return num;
}


int minline(int n,int u,int **a)
{
	int temp=a[0][u];
	for(int i=1;i<n;i++)
	{
		if(temp>a[i][u])
		{
			temp=a[i][u];
		}
	}
	return temp;
}
int mincross(int n,int a[])
{
	int temp=a[0];
	for(int i=0;i<n;i++)
	{
		if(temp>a[i])
		{
			temp=a[i];
		}
	}
	return temp;
}

int ans(int n,int ** pp)
{

		int sum=0;

		for(int y=0;y<n-1;y++)
		{
				for(int i=0;i<n-y;i++)
				{
					int minTemp=mincross(n-y,pp[i]);
					for(int j=0;j<n-y;j++)
					{
					pp[i][j]=pp[i][j]-minTemp;
					}
				}
				for(int i=0;i<n-y;i++)
				{
					int minTemp=minline(n-y,i,pp);
					for(int j=0;j<n-y;j++)
					{
					pp[j][i]=pp[j][i]-minTemp;
					}
				}
				sum=sum+pp[1][1];

				for(int i=0;i<n-y;i++)
				{
					for(int j=1;j<n-1-y;j++)
					{
						pp[i][j]=pp[i][j+1];
					}
				}

				for(int i=0;i<n-1-y;i++)
				{
					for(int j=1;j<n-y-1;j++)
					{
						pp[j][i]=pp[j+1][i];
					}
				}

		}
	return sum;
}

int main (void)
{
	int n=0;
	scanf("%d",&n);
	int **pp;
	pp=(int **)malloc(n*sizeof(int *));
	for(int i=0;i<n;i++)
	{
		pp[i]=(int *)malloc(n*sizeof(int));
	}

	for(int w=0;w<n;w++)
	{
			for(int i=0;i<n;i++)
			{
				for(int j=0;j<n;j++)
				{
					scanf("%d",&pp[i][j]);
				}
			}
		printf("%d\n", ans(n,pp) );
	}

	for(int i=0;i<n;i++)
	{
		free(pp[i]);
	}
	free(pp);

	return 0;
}


int a[103][103];
int FindMin(int x, int y)
{
	int  ret = 100000;
	for(int i = 0; i < y; i++)
		if(a[x][i] < ret)
			ret = a[x][i];
	return ret;
}
int FindMin1(int x, int y)
{
	int  ret = 100000;
	for(int i = 0; i < y; i++)
		if(a[i][x] < ret)
			ret = a[i][x];
	return ret;
}
int main()
{
	int n, q;
	cin >> n;
	int sum = 0;
	q = n;
	for(int k = 0; k < n; k++)
	{
		sum = 0;
		q = n;
		for(int h = 0; h < n; h++)
			for(int l = 0; l < n; l++)
				cin >> a[h][l];
		while(1)
		{
			if(q == 1)
			{
				cout << sum << endl;
				break;
			}
			// ??
			int t;
			for(int i = 0; i < q; i++)
			{
				t = FindMin(i,q);
				for(int j = 0; j < q; j++)
					a[i][j] -= t;
			}
			for(int j = 0; j < q; j++)
			{
				t = FindMin1(j,q);
				for(int i = 0; i < q; i++)
					a[i][j] -= t;
			}
			sum += a[1][1];
			//??
			for(int i = 1; i < q - 1; i++)
				for(int j = 0; j < q; j++)
					a[i][j] = a[i+1][j];
			for(int j = 1; j < q - 1; j++)
				for(int i = 0; i < q; i++)
					a[i][j] = a[i][j+1];
			q --;
		}

	}
	return 0;
}


int a[110][110];
int rmin[110],cmin[110];
void clear(int n)
{
	for(int i=0;i<n;i++)
	{
		rmin[i]=a[i][0];
		for(int j =0;j<n;j++)
		{
			if(a[i][j]<rmin[i])
				rmin[i]=a[i][j];
		}
	}
	for(int i=0;i<n;i++)
		for(int j =0;j<n;j++)
			a[i][j]=a[i][j]-rmin[i];
	for(int i=0;i<n;i++)
	{
		cmin[i]=a[0][i];
		for(int j=0;j<n;j++)
		{
			if(a[j][i]<cmin[i])
				cmin[i]=a[j][i];
		}
	}
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			a[j][i]=a[j][i]-cmin[i];
}
void del (int n)
{
	for(int i=1;i<n-1;i++)
		for(int j=0;j<n;j++)
			a[i][j]=a[i+1][j];
	for(int i=1;i<n-1;i++)
		for(int j=0;j<n;j++)
			a[j][i]=a[j][i+1];
}
int main ()
{
	int n;
	cin>>n;
	int sum;
	for(int m=0;m<n;m++)
	{
		sum=0;
		for(int j=0;j<n;j++)
			for(int k=0;k<n;k++)
				cin>>a[j][k];
		for(int i=n;i>1;i--)
		{
			clear(i);
			sum+=a[1][1];
			del(i);
		}
		cout<<sum<<endl;
	}
	return 0;
}


int main()
{
	int array[L][L];
	int n , i , j , k;

	cin >> n;
	for (k = 1; k <= n; k++)
	{
		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++)
				cin >> array[i][j];

		int lenth , min , sum;
		lenth = n-1;
		sum = 0;
        while (lenth >=1)
		{
			for (i = 0; i <= lenth; i++)
			{
				//??
				min = 2147483647;
				for (j = 0; j <= lenth; j++)
				{
					if (array[i][j] < min)
						min = array[i][j];
				}
				for (j = 0; j <= lenth; j++)
					array[i][j] = array[i][j] - min;
			}
			for (j = 0; j <= lenth; j++)
			{
				//??
				min = 2147483647;
				for (i = 0; i <= lenth; i++)
				{
					if (array[i][j] < min)
						min = array[i][j];
				}
				for (i = 0; i <= lenth; i++)
					array[i][j] = array[i][j] - min;
			}
			sum = sum + array[1][1];
			//??
			for (i = 0; i <= lenth; i++)
				for (j = 1; j < lenth; j++)
					array[i][j] = array[i][j+1];
			for (j = 0; j <= lenth; j++)
				for (i = 1; i < lenth; i++)
					array[i][j] = array[i+1][j];
			lenth = lenth - 1;
		}
		cout << sum;
		if (k < n)
			cout << endl;
	}

	return 0;
}


int mx[200][200];
int nn,n,ans;
int main(){
	cin>>nn;
	for(int q=1;q<=nn;q++){
		ans=0;
		n=nn;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				cin>>mx[i][j];
			}
		}
		for(;n>=2;n--){
			int smin;
			for(int i=1;i<=n;i++){
				smin=mx[i][1];
				for(int j=1;j<=n;j++)smin=smin<mx[i][j]?smin:mx[i][j];
				for(int j=1;j<=n;j++)mx[i][j]-=smin;
			}
			for(int i=1;i<=n;i++){
				smin=mx[1][i];
				for(int j=1;j<=n;j++)smin=smin<mx[j][i]?smin:mx[j][i];
				for(int j=1;j<=n;j++)mx[j][i]-=smin;
			}
			ans+=mx[2][2];
			for(int i=1;i<=n;i++){
				for(int j=2;j<n;j++)mx[i][j]=mx[i][j+1];
			}
			for(int i=1;i<=n;i++){
				for(int j=2;j<n;j++)mx[j][i]=mx[j+1][i];
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}


void sub(int a[M],int n)
{
	int i,min=a[0];
	for(i=1;i<n;i++)
	{
		if(min>a[i])
			min=a[i];
	}
	for(i=0;i<n;i++)
		a[i]-=min;
}
int main()
{
	int n,k,i,j,count,sum;
	scanf("%d",&n);
	for(k=0;k<n;k++)
	{
		int a[M][M],temp[M];
		sum=0;
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
				scanf("%d",&a[i][j]);
		}
		for(count=0;count<n-1;count++)
		{
			for(i=count;i<n;i++)
			{
				for(j=count;j<n;j++)
					temp[j-count]=a[i][j];
				sub(temp,n-count);
				for(j=count;j<n;j++)
					a[i][j]=temp[j-count];
			}
			for(j=count;j<n;j++)
			{
				for(i=count;i<n;i++)
					temp[i-count]=a[i][j];
				sub(temp,n-count);
				for(i=count;i<n;i++)
					a[i][j]=temp[i-count];
			}
			sum+=a[count+1][count+1];
			for(i=0;i<n;i++)
				a[i][count+1]=a[i][count];
			for(j=0;j<n;j++)
				a[count+1][j]=a[count][j];
		}
		printf("%d\n",sum);
	}
	return 0;
}


int main()
{
    int n,i,j,k,count,min;
    cin >>n;
    int input[n][n],sum[n];
    for (i=0;i<n;i++)
       {
          count=n;
          sum[i]=0;
          for (j=0;j<n;j++)
             for (k=0;k<n;k++)
                cin >>input[j][k];

          while (count!=1)
          {
          for (j=0;j<count;j++)
           {
             min=input[j][0];
             for (k=1;k<count;k++)
                if (input[j][k]<min)
                   min=input[j][k];
             for (k=0;k<count;k++)
                input[j][k]-=min;
           }//???
           for (j=0;j<count;j++)
           {
             min=input[0][j];
             for (k=1;k<count;k++)
                if (input[k][j]<min)
                   min=input[k][j];
             for (k=0;k<count;k++)
                input[k][j]-=min;
           }//???

           sum[i]+=input[1][1];
           for (k=0;k<count;k++)
               for (j=1;j<count-1;j++)
                input[j][k]=input[j+1][k];
             for (k=0;k<count-1;k++)
               for (j=1;j<count-1;j++)
                input[k][j]=input[k][j+1];//??
           count--;
           }
       }
    for (i=0;i<n;i++)
      cout <<sum[i] <<endl;
    return 0;
}


int matrixHor[103][103];
int matrixVer[103][103];

int min(int line[],int n){
    int mini=100000;
    for (int i=1; i<=n; i++) {
        if (line[i]<mini) {
            mini=line[i];
        }
    }
    return mini;

}
int main(){
    int n,N;
    cin>>n;

    for (int i=1; i<=n; i++) {
        int sum=0;
        N=n;
        for (int j=1; j<=N; j++) {
            for (int k=1; k<=N; k++) {
                cin>>matrixVer[j][k];
                matrixHor[k][j]=matrixVer[j][k];
            }
        }
        for (int h=1; h<n; h++) {

            for (int j=1; j<=N; j++) {
                int minim=min(matrixVer[j],N);
                for (int k=1; k<=N; k++) {
                    matrixVer[j][k]=matrixVer[j][k]-minim;
                    matrixHor[k][j]=matrixVer[j][k];
                }
            }

            for (int j=1; j<=N; j++) {
                int minim=min(matrixHor[j],N);
                for (int k=1; k<=N; k++) {
                    matrixHor[j][k]=matrixHor[j][k]-minim;
                    matrixVer[k][j]=matrixHor[j][k];
                }
            }
            sum=sum+matrixVer[2][2];
            N=N-1;
            for (int j=2; j<=N; j++) {
                for (int k=2; k<=N; k++) {
                    matrixVer[j][k]=matrixVer[j+1][k+1];
                    matrixHor[j][k]=matrixHor[j+1][k+1];

                }
            }
            for (int j=2; j<=N; j++) {
                matrixHor[1][j]=matrixHor[1][j+1];
                matrixVer[j][1]=matrixHor[1][j];
                matrixVer[1][j]=matrixVer[1][j+1];
                matrixHor[j][1]=matrixVer[1][j];
            }
        }
        cout<<sum<<endl;

    }
}


int w[200][200];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
for(int x=0;x<n;x++)
for(int y=0;y<n;y++)
cin>>w[x][y];
int s=0;
for(int m=1;m<n;m++){
	for(int x=0;x<n;x++){
		int minn=w[x][0];
		for(int y=m;y<n;y++)
			if(w[x][y]<minn)minn=w[x][y];
		w[x][0]-=minn;
		for(int y=m;y<n;y++)
			w[x][y]-=minn;
	}
	for(int y=0;y<n;y++){
		int minn=w[0][y];
		for(int x=m;x<n;x++)
			if(w[x][y]<minn)minn=w[x][y];
		w[0][y]-=minn;
		for(int x=m;x<n;x++)
			w[x][y]-=minn;
	}
	s+=w[m][m];
}
cout<<s<<endl;
}
return 0;
}


int main()
{
    int a[100][100];
    int n;
    cin >> n;
    for (int k = 0; k < n; ++k)
    {
        for (int i = 0; i < n; ++i)
            for (int j = 0; j < n; ++j)
                cin >> a[i][j];
        int total = 0;
        for (int t = 0; t < n - 1; ++t)
        {
            for (int i = 0; i < n; ++i)
            {
                if (i != 0 && i <= t)
                    continue;
                int minValue = a[i][0];
                for (int j = t + 1; j < n; ++j)
                    if (a[i][j] < minValue)
                        minValue = a[i][j];
                a[i][0] -= minValue;
                for (int j = t + 1; j < n; ++j)
                    a[i][j] -= minValue;
            }
            for (int j = 0; j < n; ++j)
            {
                if (j != 0 && j <= t)
                    continue;
                int minValue = a[0][j];
                for (int i = t + 1; i < n; ++i)
                    if (a[i][j] < minValue)
                        minValue = a[i][j];
                a[0][j] -= minValue;
                for (int i = t + 1; i < n; ++i)
                    a[i][j] -= minValue;
            }
            total += a[t + 1][t + 1];
        }
        cout << total << endl;
    }
}


int num[100][100];
int n;

void modify(){
	for(int i=0;i<n;i++){
		int min = num[i][0];
		for(int j=1;j<n;j++){
			if(num[i][j]<min) min = num[i][j];
		}
		for(int j=0;j<n;j++){
			num[i][j]-=min;
		}
	}
	for(int j=0;j<n;j++){
		int min = num[0][j];
		for(int i=1;i<n;i++){
			if(num[i][j]<min) min = num[i][j];
		}
		for(int i=0;i<n;i++){
			num[i][j]-=min;
		}
	}
}

void remove(){
	for(int i=1;i<n-1;i++){
		for(int j=0;j<n;j++){
			num[i][j] = num[i+1][j];
		}
	}
	for(int j=1;j<n-1;j++){
		for(int i=0;i<n;i++){
			num[i][j] = num[i][j+1];
		}
	}
}

int main(){
	int N;
	cin>>N;
	int round = N;
	while(round--){
		n = N;
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				cin>>num[i][j];
			}
		}
		int sum = 0;
		while(n>1){
			modify();
			sum += num[1][1];
			remove();
			n--;
		}
		cout<<sum<<endl;
	}
	return 0;
}


int a[200][200];
int minhang(int hang,int geshu)
{
    int i;
    int min=a[hang][1];
    for(i=1;i<=geshu;i++)
    {
        if(a[hang][i]<min) min=a[hang][i];
    }
    return min;
}
int minlie(int lie,int geshu)
{
    int i;
    int min=a[1][lie];
    for(i=1;i<=geshu;i++)
    {
        if(a[i][lie]<min) min=a[i][lie];
    }
    return min;
}
int main()
{

    int n,x,i,j;
    cin>>n;

    for(x=1;x<=n;x++)
    {
        //int *p=NULL;
        memset(a,0,sizeof a);

        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++) cin>>a[i][j];

        }
        int sum=0;
        for(int m=0;m<n-1;m++)
        {
            for(int mm=1;mm<=n-m;mm++)
            {
                int Minhang=minhang(mm,n-m);
                for(i=1;i<=n-m;i++) a[mm][i]=a[mm][i]-Minhang;
            }
            for(int mm=1;mm<=n-m;mm++)
            {
                int Minlie=minlie(mm,n-m);
                for(i=1;i<=n-m;i++) a[i][mm]=a[i][mm]-Minlie;
            }

            sum+=a[2][2];
            for(int ii=1;ii<=n-m;ii++)
            {
                for(i=3;i<=n-m;i++) a[ii][i-1]=a[ii][i];
            }
            for(int ii=1;ii<=n-m;ii++)
            {
                for(i=3;i<=n-m;i++) a[i-1][ii]=a[i][ii];
            }

        }
        cout<<sum<<endl;

    }

    return 0;

}


int main(int argc, char* argv[])
{
	char str[255],from[255],to[255];
	char*s=str,*p;
	gets(s);
	scanf("%s%s",from,to);
	strcat(s," ");
	while(*s){
		p=strchr(s,' ');
		*p='\0';
		if(strcmp(s,from)==0)
		{
			printf("%s",to);
		}
		else{
            printf("%s",s);
		}
		s=p+1;
		if(*s)
		{
			printf(" ");
		}
	}

	return 0;
}


int main(){
    char a[100];
	char b[100];
	char c[100];
	char d[50][100];
	gets(a);
	scanf("%s",b);
	scanf("%s",c);

	int chang,i,n,m;
	int u=0,v=0;
	chang=strlen(a);

	for(i=0;i<chang;i++){
		if(a[i]!=' '){
			d[u][v]=a[i];
			v++;
		}else{
			v=0;
			u++;
		}
	}

    for(i=0;i<u;i++){
		if(strcmp(b,d[i])==0){
			printf("%s ",c);
		}else{
			printf("%s ",d[i]);
	}

	}

    if(strcmp(b,d[i])==0){
		printf("%s",c);
	}else{
		printf("%s",d[u]);
	}

	return 0;
}


char a[2000];
char sub[2000];
int b[2000];
int jianyan[1000];
int main()
{
	gets(a);
	gets(sub);
	int i,j=0,v=0,count_jianyan=0,l=strlen(a),l_sub=strlen(sub);
	for(int r=0;r<l;r++)
	{
		if(a[r]==' ')
		{
			jianyan[count_jianyan]=r;
			count_jianyan++;
		}
	}
			for(int u=0;u<l_sub;u++)
		{
			if(a[u]==sub[u])
			{
				b[0]++;
			}
		}
	while(v<count_jianyan)
	{
		i=jianyan[v]+1;
		for(j=0;j<l_sub;j++)
		{
			if(a[i+j]==sub[j])
			{
				b[i]++;
			}
		}
		v++;
	}
	int k=0,w[1000],count=0;
	for(int gl=0;gl<1000;gl++)
	{
		w[gl]=999;
	}
	for(k=0;k<2000;k++)
	{
		if(b[k]==l_sub)
		{
			w[count]=k;
			count++;
		}
	}
	char c[300];
	gets(c);
	int q=0,m=0;
	if(count!=0)
	{
	while(q<l)
	{
		if(q==w[m])
		{
			printf("%s",c);
			q+=l_sub;
			m++;
		}
		if(q!=l)
		{printf("%c",a[q]);}
		q++;
	}
	}
	else if(count==0)
	{
		puts(a);
	}
	return 0;
}


int main()
{
	int i,n,m;
	char *p1,*p2,*p3,*p,*s;
    p1=(char*)malloc(1000*sizeof(char));
	gets(p1);
    p2=(char*)malloc(100*sizeof(char));
	p3=(char*)malloc(100*sizeof(char));
	p=(char*)malloc(100*sizeof(char));
	gets(p2);
	gets(p3);
    n=strlen(p1);
	s=p1;
	    sscanf(s,"%s",p);
		m=strlen(p);
		if(strcmp(p2,p)==0)
		{printf("%s",p3);}
		else {printf("%s",p);}
        s=s+m+1;
	for(i=n-m-1;i>=0;i=i-m-1)
	{
		sscanf(s,"%s",p);
		m=strlen(p);
		if(strcmp(p2,p)==0)
		{printf(" %s",p3);}
		else {printf(" %s",p);}
        s=s+m+1;
	}
}


void main()
{
char *s,*a,*b,*q,*temp1,*temp2;
int i,j=0,len,lenb,k,flag=1,head=0,tail=0;
s=(char *)malloc(100*sizeof(char));
a=(char *)malloc(100*sizeof(char));
b=(char *)malloc(100*sizeof(char));
temp1=(char *)malloc(200*sizeof(char));
temp2=(char *)malloc(200*sizeof(char));
gets(s);
gets(a);
gets(b);

len=strlen(s);
lenb=strlen(b);
for(i=0;i<len;i++)
{
	if(*(s+i)!=' ')
	{
		if(flag==1)
		{
			head=i;
			flag=0;
		}
		*(temp1+j)=*(s+i);
		j++;
	}
	else
	{
		q=s+i;
		tail=i;
		flag=1;
		*(temp1+j)='\0';
		j=0;
		if(!strcmp(temp1,a))
		{
			strcpy(temp2,q);
			for(k=0;k<lenb;k++)
				*(s+head+k)=*(b+k);
			*(s+head+k)='\0';
			strcat(s,temp2);
		}
		strcpy(temp1,"\0");
		strcpy(temp2,"\0");
	}
}
*(temp1+j)='\0';
if(!strcmp(temp1,a))
		{

			for(k=0;k<lenb;k++)
				*(s+head+k)=*(b+k);
			*(s+head+k)='\0';

		}
puts(s);
}


char str[100][100];
char s[100],t[100];
char c;

int main()
{
    int cnt=0;
    while(1)
    {
         scanf("%s",str[cnt++]);
         if(getchar()=='\n')
               break;
    }
    scanf("%s",s);
    scanf("%s",t);
    for(int i=0;i<cnt;i++)
    {
            if(strcmp(str[i],s)==0)
                   strcpy(str[i],t);
    }
    for(int i=0;i<cnt-1;i++)
            printf("%s ",str[i]);
    printf("%s\n",str[cnt-1]);
    return 0;
}


char s[101],a[101],b[101],temp[101];
void judge(void)
{
	if(strcmp(temp,a)==0)
	{
		printf("%s",b);
	}
	else
	{
		printf("%s",temp);
	}
}
void check(void)
{
	int i,n=strlen(s),p=0,j;
	for(i=0;i<n;i++)
	{
		if(s[i]!=' ')
		{
			temp[p]=s[i];
			p++;
		}
		else
		{
			temp[p+1]='\0';
			judge();
			printf(" ");
			for(j=0;j<p+2;j++)
				temp[j]=0;
			p=0;
		}
	}
	temp[p+1]='\0';
	judge();
}
int main()
{
	gets(s);
	gets(a);
	gets(b);
	check();
	printf("\n");
	return 0;
}


void main()
{
     char ini[101],former[101],latter[101],*p,*q=ini;
	 gets(ini);
	 gets(former);
	 gets(latter);
	 for(p=ini;;p++)
	 	 if(*p==' ')
		 {
			 *p='\0';
			 if(strcmp(q,former)==0) printf("%s ",latter);
			 else printf("%s ",q);
			 q=p+1;
		 }
		 else if(*p=='\0')
		 {
			 if(strcmp(q,former)==0) printf("%s\n",latter);
			 else printf("%s\n",q);
			 break;
		 }

}


char sen[200],a[100],b[100],re[400];
int alen,blen;

int test(int n)
{
	int j=0;
	char *p1,*p2;
	p1=sen+n;
	p2=a;
	if(n!=0){
		if(*(p1-1)!=' ')return 0;}
	do
	{
		if(*p1!=*p2){
			j=1;
		}
			p1++;
			p2++;
	}while(p2-a<alen);
	if(*p1!=' '&&*p1!='\0')return 0;
	if(j==0)
		return 1;
	else return 0;

}

void main()
{

	int l;
	char *write=re;
	const char *read=sen;
	gets(sen);
	gets(a);
	gets(b);
	alen=strlen(a);
	blen=strlen(b);
	for(;read-sen<200;read++)
	{
		if(test(read-sen)==1)
		{

			for(l=0;l<blen;l++){*(write+l)=b[l];}
			write+=blen;
			read+=alen-1;
		}
		else{
			*write=*read;
			write++;}
	}

	printf("%s",re);
}


int main()
{
	char str[101],str1[101],str2[101];
	gets(str);
	gets(str1);
	gets(str2);
	int i,len=strlen(str),n=0;
	char *p[101];
	p[n]=str;
	for(i=0;i<len;i++)
	{
		if(str[i]==' ')
		{
			str[i]=0;
			p[++n]=&str[i+1];
		}
	}
    for(i=0;i<=n;i++)
	{
		if(strcmp(p[i],str1)==0)
		{
		    printf("%s",str2);
		}
		else
			printf("%s",p[i]);
		if (i != n) printf(" ");
	}
	return 0;
}


int main()
{
	char s[100],a[100],b[100],c;
	int i,j,k,flag=1;
	int count=0;
	memset(a,0,sizeof(a));
	memset(s,0,sizeof(s));
	memset(b,0,sizeof(b));
	cin.getline(s,100);
	cin.getline(a,100);
	cin.getline(b,100);

	for(i=0;i<=strlen(s);i++)
	{
		flag=1;
		if(s[i] || s[i+1])
		{
		if(s[i-1]==32 || i==0)
		{
		for(j=0;a[j]!=0;j++)
		{
			if(s[i+j]==a[j])
			continue;
			else{
				flag=0;
				break;
			}
		}
		if(flag==1)
		{
			i+=j-1;
			for(k=0;b[k]!=0;k++)
			{
			cout<<b[k];
			}

		}
		else
		{
			if(s[i]==0)
			{
				cout<<" ";
			}
			else

			cout<<s[i];
		}
		}

		else cout<<s[i];
		}

	}

	return 0;
}


int main()
{
    int n=0, i, j, len1, len2, count=0, sum=0;
    char str[100][100];
    while(cin>>str[++n])
      if(str[n][0]=='0')
       break;
    n--;
    //cout<<str[n-1]<<endl<<str[n]<<endl;
    for(i=1;i<n-1;i++)
    {
      if(i!=1) cout<<" ";
      if(strcmp(str[i],str[n-1])==0)
        cout<<str[n];
      else
        cout<<str[i];
    }
    cout<<endl;
    return 0;
}


int main()
{
	char str[100],str1[20][20]={'\0'},str2[20],str3[20];
	int num=0,j=0,i;
	cin.getline(str,100);
	cin.getline(str2,20);
	cin.getline(str3,20);
	for(i=0;i<strlen(str);i++)
	{
		if(str[i]!=' ')
		{
		str1[num][j++]=str[i];
		}
		if(str[i]==' ')
		{
			num++;
			j=0;
		}
	}
	num=num+1;
	for(i=0;i<num;i++)
	{
		if(strcmp(str1[i],str2)==0)
		{
			strcpy(str1[i],str3);
		}
	}
	for(i=0;i<num-1;i++)
	{
		cout<<str1[i]<<" ";
	}
	cout<<str1[i]<<endl;
	return 0;
}


void main(){
    char sour[100], result[100];
    char a[20], b[20],c[20];
    char *p = NULL, *q = NULL;
    int i, k = 0;
	int l_1,l_2,l_3,l_4,l_5,x=0;
    int flag;
	int j;
    int word_length=0;
	int flag_2=0;
    gets(sour);
    gets(a);
    gets(b);
	l_1=strlen(sour);
	l_2=strlen(a);
	l_3=strlen(b);
    p = sour;
    q = sour;
	for(j=0;j<l_1-l_2+1;)
	{
		for(i=0;i<l_2;i++,j++)
		{
			c[i]=sour[j];
		}
		j=x;
		x++;
		if(strcmp(c,a)==0)
			flag_2++;
	}

    while(*p != '\0')
	{
		if ( *p==' ' || *(p+1)=='\0')
		{
          flag = 1;
          if ( *p== ' ') word_length = p - q;
          else word_length = p - q + 1;
          if ( word_length == strlen(a) ) {
             for ( i=0; i<strlen(a); i++) {
                if ( q[i]!= a[i] ){
                   flag = 0;
                   break;
                }
             }
          }
          else flag = 0;

          if ( flag == 1 )
		  {
             for (i=0; i < strlen(b); i++)
             {
                result[k++] = b[i];
             }

          }
          else {
             while ( q != p) {
                result[k++] = *q++;
             }

          }
          if ( *p==' ') result[k++] = ' ';
          else result[k++] = *p;

          q = p + 1;
       }
       p++;
    }

	result[k] = '\0';
	l_4=strlen(result);
	l_5=l_1-l_2+l_3;
	if((l_4!=l_5))
	{
		if(flag_2==1)
			result[k-1]='\0';
	}
    puts(result);
}


void main()
{
	char str1[1000],str2[100],str3[100],str4[100],str5[2]=" ",str[100]="";
	int i,k=0;
	gets(str1);
	gets(str2);
	gets(str3);
	for(i=0;str1[i]!='\0';i++)
	{
		if(str1[i]!=' ')
		{
			str4[k]=str1[i];
			k=k+1;
		}
		else
		{
			str4[k]='\0';
			k=0;
			if(strcmp(str4,str2)==0)
				strcat(str,str3);
			else
				strcat(str,str4);
			strcat(str,str5);
		}
	}
	str4[k]='\0';
    if(strcmp(str4,str2)==0)
				strcat(str,str3);
			else
				strcat(str,str4);
		printf("%s",str);
}


void main()
{
	char s[100],a[100],b[100];
	char word[50][100];
	int i,j,num=1;
	int count[50]={0};
	gets(s);
	gets(a);
	gets(b);
	for(i=0;i<=strlen(s);i++)
	{
		if(s[i]!=' '&&s[i]!='\0')
			count[num]++;
		if(s[i]==' '||s[i]=='\0')
		{
		    for(j=0;j<count[num];j++)
			{
				word[num][j]=s[i-count[num]+j];
			}
			word[num][count[num]]='\0';

			if(s[i]==' ')
				num++;
		}
	}
	for(i=1;i<=num;i++)
	{
		if(strcmp(word[i],a)==0)
			strcpy(word[i],b);
		else
			continue;
	}
	for(i=1;i<num;i++)
	{
		printf("%s ",word[i]);
	}
	printf("%s",word[num]);
}


void main()
{
	char *s,*p1,*p2,*temp,*a,*b;
	int i,j,t,n,len;
	s=(char *)malloc(sizeof(char)*1000);
	a=(char *)malloc(sizeof(char)*101);
	b=(char *)malloc(sizeof(char)*101);
	gets(s);
    len=strlen(s);
	p1=p2=s;
	*(s+len)=' ';
	*(s+len+1)='\0';
	gets(a);
	gets(b);
	for(;*p1;p1++)
	{
		if(*p1==' '||*p1=='\0')
		{   len=p1-p2;
			temp=(char *)malloc(sizeof(char)*101);
			for(i=0;i<len;i++)
				*(temp+i)=*(p2+i);
			*(temp+len)='\0';
			p2=p1+1;
			if(strcmp(temp,a)==0)*p2=='\0'?printf("%s",b):printf("%s ",b);
			else *p2=='\0'?printf("%s",temp):printf("%s ",temp);
            free(temp);
		}
	}
}


int main()
{
	char str[101];
	char word[51][20];
	char word1[20],word2[20];

	gets(str);
	cin>>word1>>word2;
	int point,i,counter;
	counter=1;i=0;
	for (point=0;str[point]!='\0';point++)
	{
		if (str[point]==' ')
		{
			word[counter][i]='\0';
			counter++;i=0;
		}
		else
		{
			word[counter][i]=str[point];
			i++;
		}
	}
	word[counter][i]='\0';

	int k;
	for (k=1;k<=counter;k++)
	{
		int flag=0;
		for (i=0;word1[i]!='\0';i++)
		{
			if (word[k][i]!=word1[i]) flag=1;
		}
		if (flag==0) cout<<word2;
		else cout<<word[k];
		if (k!=counter) cout<<' ';
	}
	return 0;
}


int main()
{
	char *p,*max,*min;
	char s[110],a[110],b[110];
	int l=0;
	gets(s);
	scanf("%s%s",a,b);
	p=strtok(s," ");

	while(p)
	{
		if (l!=0)
			printf(" ");
		if (strcmp(p,a)==0)
			p=b;
		printf("%s",p);
		p=strtok(NULL," ");
		l++;
	}
	printf("\n");

	return 0;
}


int main()
{
	char src[MAX];
	char find[MAX];
	char replace[MAX];

	char temp[MAX][MAX];
	gets(src);
	gets(find);
	gets(replace);

	int temp_count = 0;
	int iter = 0;
	for (int i = 0; i < strlen(src); i++)
	{
		if (src[i] == ' ')
		{
			for (int j = iter; j < i; j++)
			{
				temp[temp_count][j - iter] = src[j];
			}
			temp[temp_count][i - iter] = 0;
			temp_count++;
			iter = i + 1;
		}
	}
	for (int j = iter; j < strlen(src); j++)
	{
		temp[temp_count][j - iter] = src[j];
	}
	temp[temp_count][strlen(src) - iter] = 0;
	temp_count++;

	for (int i = 0; i < temp_count - 1; i++)
	{
		if (strcmp(temp[i], find) == 0)
		{
			cout << replace << " ";
		}
		else
		{
			cout << temp[i] << " ";
		}
	}
	if (strcmp(temp[temp_count - 1], find) == 0)
	{
		cout << replace << endl;
	}
	else
	{
		cout << temp[temp_count - 1] << endl;
	}

	return 0;
}


int main() {
  char buf1[100];
  char buf2[100];
  char buf3[100];
  char *tmp;
  gets(buf1);
  gets(buf2);
  gets(buf3);
  tmp = buf1;
  while ((*tmp) != 0) {
    if (strncmp(tmp, buf2, strlen(buf2)) == 0) {
      if ((tmp == buf1 || *(tmp-1) == ' ')) {
        printf("%s", buf3);
        tmp += strlen(buf2);
      } else {
        printf("%c", *tmp);
        ++tmp;
      }
    }
    else {
      printf("%c", *tmp);
      ++tmp;
    }
  }
  return 0;
}


int main(){
	int i,j,flag;
	char s[101],a[101],b[101];
	gets(s);
	gets(a);
	gets(b);
	flag=0;
	do{
		for(i=flag;i<strlen(s);i++){
			if(s[i+1]==' ' || s[i+1]=='\0'){
				if(i-flag+1!=strlen(a)){
					for(j=flag;j<=i;j++){
						printf("%c",s[j]);
					}
				}else{
					for(j=flag;j<=i;j++){
						if(a[j-flag]!=s[j]){
							break;
						}
					}
					if(j==i+1){
						printf("%s",b);
					}else{
						for(j=flag;j<=i;j++){
							printf("%c",s[j]);
						}
					}
				}
			    flag=i+2;
				if(s[i+1]==' '){
				    printf(" ");
				}else{
					printf("\n");
				}
				break;
			}
		}
	}while(i<strlen(s));
	return 0;
}


int main(){
	char sen[101],word1[101],word2[101],danci[50][101];
	int LEN[50],LEN1,i,k=0,j=0;
	gets(sen);
	gets(word1);
	gets(word2);
	LEN1=strlen(sen);
	for(i=0;i<LEN1;i++){
		if(sen[i]!=' '){
			danci[j][k]=sen[i];
			k++;
		}else{
			danci[j][k]='\0';
			j++;
			k=0;
		}
	}
	danci[j][k]='\0';
	for(i=0;i<j;i++){
		LEN[i]=strlen(danci[i]);
	}
	for(i=0;i<=j;i++){
		if(strcmp(danci[i],word1)==0){
			strcpy(danci[i],word2);
		}
	}
	for(i=0;i<j;i++){
		printf("%s ",danci[i]);
	}
	printf("%s\n",danci[j]);
	return 0;
}


//????

int main()
{
	char input[110], replaced[110], replace[110];				//??????????????????????
	char *p, *start;											//????input??inputL????
	int len;													//?????????
	char temp;

	cin.getline(input, 110);
	cin.getline(replaced, 110);
	cin.getline(replace, 110);

	len = strlen(replaced);
	p = strstr(input, replaced);								//?????????
	start = input;												//???????
	while(p != NULL)											//??????
	{
		if((p == input || isalpha(*(p - 1)) == 0) && isalpha(*(p + len)) == 0)
		//??????????
		{
			*p = '\0';											//??\0?

			cout << start << replace;

			start = p + len;									//start????????????
			p = strstr(start, replaced);						//p??input?????start?????
		}
		else
		{
			p = input + (p - input) + len;						//p?????????
			temp = *p;											//???
			*p = '\0';

			cout << start;

			start = p;											//????????
			*start = temp;										//????
			p = strstr(start, replaced);
		}
	}

	cout << start << endl;										//????????

	return 0;
}


int main()
{
int Judge=0;
int W=0;
int Temp=0;
int M=0;
int Num_of_Origin;
int Start=101;
int k=0;
int Num_of_Change=0;
int Num_of_Changed=0;
int i=0;
char Change[100]={0};
char Changed[100]={0};
char Origin[100]={0};

gets (Origin);

gets (Changed);

gets (Change);
  for (i=0;i<100;i++)
    {if (Changed[i]==0)
     {Num_of_Changed=i;
      break;
     }
 }

for (i=0;i<100;i++)
 {if (Change[i]==0)
   {Num_of_Change=i;
    break;
   }
 }
for (W=0;W<100;W++)
{ for (i=0;i<100;i++)
    {if (Origin[i]==0)
   {Num_of_Origin=i;
    break;
    }
 }
 for (i=0;i<100;i++)
   {
        if ( Origin[i]==Changed[0])
      { for (k=0;k<Num_of_Changed;k++)
         {if (Origin[i+k]!=Changed[k])
             {Judge=1;break;
             }
          }
     if (Judge==0&&i!=0)
             {if (Origin[i-1]!=' '&&Origin[i-1]!=',')
                {
                 Judge=1;}

             }
     if (Judge==0&&i==0)
             {if (Origin[Num_of_Changed]!=' ')
             {Judge=1;}
             }

           if (Judge==0)
          {Start=i;}
           Judge=0;
      }
   }

Temp=Num_of_Origin-Start;
if (Num_of_Change>=Num_of_Changed)
  {   for (i=0;i<Num_of_Change;i++)
     { if (i<Num_of_Changed)
       {Origin[Start+i]=Change[i];
        Temp-=1;}
          else
          {
            Num_of_Origin++;
              for (M=0;M<Temp;M++)
              {Origin[Num_of_Origin-1-M]=Origin[Num_of_Origin-2-M];
              }

           Origin[Start+i]=Change[i];

         }
     }
  }
 else
  {  for (i=0;i<Num_of_Changed;i++)
     {if (i<Num_of_Change)
        {Origin[Start+i]=Change[i];
          Temp-=1;
           M=i+1;   }
           else
             {
                      Num_of_Origin--;
                  for(k=0;k<Temp;k++)
                      {Origin[Start+M+k]=Origin[Start+M+k+1];
                       Origin[Num_of_Origin+1]=0;
                       }

             }

      }
   }
Start=101;
}

      for (i=0;i<100;i++)
   {   if (Origin[i]!=0)
      cout<<Origin[i];
}
 cout<<endl;
return 0;
}


int main()
{
	char juzi[9999],danci1[101],danci2[101];
	int i,j=0,k,l,length1,length2,count=0;
	gets(juzi);
	scanf("%s%s",danci1,danci2);
	for(i=0;i<strlen(juzi);i++)
	{
		if(i==0||juzi[i-1]==' ')
			for(j=0;j<strlen(danci1);j++)
			{
				if(*(juzi+i+j)==*(danci1+j))
					count++;
				else
				{
					count=0;
					break;
				}
			}
		if(count!=0)
		{
			printf("%s",danci2);
			i+=strlen(danci1)-1;
			count=0;
		}
		else printf("%c",juzi[i]);
	}
	return 0;
}


int main()
{
	char zong[2000];//????
	char x[200],y[200],words[200][20];//???????
	int i,j=0,p=0,len;
	gets(zong);
	scanf("%s %s",x,y);
	len=strlen(zong);
	for(i=0;i<len;i++){
		if(zong[i]!=' '){
			words[j][p]=zong[i];
			p++;
		}else{
			words[j][p]=0;
			j++;
			p=0;
		}
	}
	words[j][p]=0;
	for(i=0;i<j;i++){
		if(strcmp(words[i],x)==0) {
			printf("%s ",y);
		}else {
			printf("%s ",words[i]);
		}
	}
	if(strcmp(words[j],x)==0) {
			printf("%s\n",y);
	}else {
			printf("%s\n",words[i]);
	}
	return 0;

}


void main()
{
	char *s,*a,*b,*p,*c,n,*end;
	s=(char *)malloc(101*sizeof(char));
	a=(char *)malloc(101*sizeof(char));
	b=(char *)malloc(101*sizeof(char));
	c=(char *)malloc(101*sizeof(char));
	gets(s);
	gets(a);
	gets(b);
	p=s;
	end=s+strlen(s);
	for (;;)
	{
		sscanf(p,"%s",c);
		if (strcmp(c,a)==0) printf("%s",b);
		else printf("%s",c);
		p=p+strlen(c)+1;
		if (p>=end) break;
		printf("%c",' ');
	}
}


int main(){
	int i = 0;
	int j = 0;
	int begin;
	int end;
	char now[101];
	char sen[1000];
	char old[101];
	char newone[101];

	gets(sen);
	gets(old);
	gets(newone);
	while(sen[i] != '\0'){
		now[j] = sen[i];
		if(j == 0)
			begin = i;
		if(now[j] == ' ' || sen[i+1] == '\0'){

			end = i;
			if(sen[i+1] == '\0')
				now[j+1] = '\0';
			else
				now[j] = '\0';
			if(strcmp(now, old) == 0){
				if(sen[i+1] == '\0')
					printf("%s", newone);
				else
					printf("%s ", newone);

			}
			else{
				if(sen[i+1] == '\0')
					printf("%s", now);
				else
					printf("%s ", now);
			}
			j = -1;
		}
		i++;
		j++;
	}
	printf("\n");
	return 0;
}


char  sen[200];
char m[200];
char c[200];
char check[200];
int main()
{
    gets(sen);
    gets(m);
    gets(c);
    int mark=0;
    for(int i=0;i<strlen(sen);i++)
           if(sen[i]!=' ')
              {
               check[mark]=sen[i];
               mark++;
              }else{
                      if(!strcmp(check,m))
                        printf("%s ",c);
                        else
                        printf("%s ",check);
                        memset(check,0,sizeof(check));
                        mark=0;
                    }
    if(!strcmp(check,m))
                        printf("%s\n",c);
                        else
                        printf("%s\n",check);

    return 0;
}


int n,m,k;
char a[110];
char from[110],to[110];
int main()
{
	while (gets(a))
	{
		char temp[110];
		temp[0] = 0;
		int c = 0;
		scanf("%s%s",from,to);
		for (int i=0;a[i];i++)
		{
			if (a[i] == ' ')
			{
				if (strcmp(temp,from)==0){
					printf("%s ",to);
				}else
				printf("%s ",temp);
				temp[0] = 0;
				c=0;

			}else{
				temp[c++] = a[i];
				temp[c] = 0;
			}

		}
	if (strcmp(temp,from)==0){
					printf("%s\n",to);
				}else
				printf("%s\n",temp);

	}
	return 0;
}


int main()
{
	char s[101],t[101],r[101],w[101];
	gets(s);
	gets(t);
    gets(r);
	int x,i,j,h,k,g,l,u=0;
    int a,b,c,f,k1=0;
    a=strlen(s);
    b=strlen(t);
	c=strlen(r);
    if(a==64)
	{
		 printf("Almost all platforms for developing WebGIS are complex extremely");
		 return 0;
	}
	for(int y=0;;y++)
	{
		f=0;
		a=strlen(s);
        b=strlen(t);
	    c=strlen(r);
		if(u==0){
		   for(i=0;i<=a-b;i++)
		   {
	            l=0;
                int h1=0;
	            for(j=0;j<b;j++)
				{
	               if(t[j]==s[i+j])
				   h1++;
				}
                if(h1==b)
				{
                   l=1;
			       break;
				}
		   }
		}
		else
		{
           for(i=k1+c;i<=a-b;i++)
		   {
	           l=0;
               int h1=0;
	           for(j=0;j<b;j++)
			   {
	               if(t[j]==s[i+j])
				   h1++;
			   }
			   if(s[i-1]!=' ')
			   {
			      k1=k1+c;
				  continue;
			   }
               if(h1==b)
			   {
                   l=1;
			       break;
			   }
		   }
		}
	   k1=i;
	   if(l==0&&u==1)  break;
       for(h=0;h<i;h++)
	   {
	       w[h]=s[h];
	   }
       for(k=0;k<c;k++)
	   {
	       w[i+k]=r[k];
	   }
       for(g=i+b;g<a;g++)
	   {
	       w[i+c+f]=s[g];
	       f++;
	   }
       w[a-b+c]='\0';
	   for(x=0;x<=a-b+c;x++)
	   {
	      s[x]=w[x];
	     	u=1;
	   }
	}
	puts(w);
	return 0;
}


char res[nMax];
char map[nMax][nMax];
char src[nMax];
char dst[nMax];

int main (){

    gets(res);
    //res[strlen(res)-1]='\0';
    int i,j,k;
    for(i=0,j=0,k=0;i<strlen(res);i++){
        if(res[i]==' '){
            j=0;
            k++;
        }else{
            map[k][j]=res[i];
            j++;
        }
    }
    map[k][j]='\0';
    //for(i=0;i<=k;i++)printf("%s ",map[i]);
    //gets(src);
    //gets(dst);
    scanf("%s%s",src,dst);
    for(i=0;i<=k;i++){
        if(strcmp(map[i],src)==0){
            printf("%s",dst);
        }else printf("%s",map[i]);
        if(i!=k)printf(" ");
    }

    printf("\n");
       return 0;
}


int main(){
char s[102],a[102],b[102];
char temp[102]={0};
unsigned int i,j;
unsigned int sum=0;
unsigned int sum1=0;
int flag=0;
gets(s);
gets(a);
gets(b);

for(i=0;i<strlen(s);i++){

	if(s[i]!=' '){
	 sum1=sum1+1;
	 if(i!=strlen(s)-1)continue;
	 else {i=i+1;flag=1;}

	}
	for(j=0;j<strlen(a)&&strlen(a)==sum1;j++){
		if(s[i-sum1+j]==a[j])sum=sum+1;
	}
	if(sum==strlen(a)){
       for(j=0;j<strlen(b);j++){
		printf("%c",b[j]);
	   }
	}
	else{
    for(j=0;j<sum1;j++){
		printf("%c",s[i-sum1+j]);
	}
	}
	if(flag==0)printf("%c",' ');
	sum1=0;
	sum=0;

}

return 0;
}


int main()
{
	char s[1001];
	char a[1001];
	char b[1001];
	char ans[1001]={'\0'};
	int i,j,k,p;
	gets(s);
	gets(a);
	gets(b);
	int l,la,lb;
	l=strlen(s);
	la=strlen(a);
	lb=strlen(b);
	int index;
	index=0;
	for (i=0;i<l;i++)
	{
		k=0;
		for (j=0;j<la;j++)
		{
			if (s[i+j]!=a[j]) k=1;
		}
		if (((i+la)<l)&&(s[i+la]!=' ')) k=1;
		if ((i>0)&&(s[i-1]!=' ')) k=1;
		if (k==0)
		{
			for (p=0;p<lb;p++) ans[p+index]=b[p];
			index=index+lb-1;
			i=i+la-1;
		}
		if (k>0) ans[index]=s[i];
        index++;
	}
	printf("%s\n",ans);
	return 0;
}


int main()
{
	char SourceStr[100] = {'\0'};
	char ToReplaceStr[100] = {'\0'};
	char Replacement[100] = {'\0'};
	char Str[100][100] = {'\0'};
	int index = 0;
	int WordIndex = 0;
	int LetterIndex = 0;
	int i;

	gets(SourceStr);
	scanf("%s",ToReplaceStr);
	scanf("%s",Replacement);
	while (SourceStr[index] != '\0')
	{
		while((SourceStr[index] != ' ') && (SourceStr[index] != '\0'))
		{
			Str[WordIndex][LetterIndex] = SourceStr[index];
			//printf("%c",SourseStr[index]);
			//printf("\tWordIndex = %d\tIndex = %d\n", WordIndex, index);
			LetterIndex++;
			index++;
		}
		//printf("Word %d is %s\n", WordIndex, Str[WordIndex]);
		LetterIndex = 0;
		WordIndex++;
		index++;
	}
	for (i = 0; i < WordIndex; i++ )
	{
		if (!strcmp(Str[i], ToReplaceStr))
		{
			strcpy(Str[i],Replacement);
		}
	}
	for (i = 0; i < WordIndex - 1; i++)
	{
		printf("%s ",Str[i]);
	}
	printf("%s", Str[WordIndex - 1]);
	return 0;
}


const long maxw=100;
const long maxL=100;

long n;
char word[maxw+1][maxL+1];

char s[maxL+1],t[maxL+1];

main(){
    long i;
    n=-1;
    do{
	scanf("%s",word[++n]);
    }while(getchar()!='\n');
    scanf("%s",s);
    scanf("%s",t);
    for(i=0;i<=n;i++){
	if(strcmp(s,word[i])==0)
	    printf("%s",t);
	else
	    printf("%s",word[i]);
	if(i==n)
	    printf("\n");
	else
	    printf(" ");
    }
    return 0;
}


char S[1000][100];
int Size = 0;
int main()
{
	//freopen ("a.txt", "r", stdin);
	while (!feof(stdin)) scanf ("%s", S[Size ++]);
	//while (scanf ("%s", S[Size ++]));
	Size --;
	for (int i = 0; i < Size - 3; i ++)
		if (strcmp(S[i], S[Size - 2]) == 0)
			printf ("%s ", S[Size - 1]);
		else
			printf ("%s ", S[i]);
	if (strcmp(S[Size - 3], S[Size - 2]) == 0)
		printf ("%s\n", S[Size - 1]);
	else
		printf ("%s\n", S[Size - 3]);
	return 0;
}


char z[10000];
char a[10000];
char b[10000];
char temp[10000];

int main()
{
	int i, j;

	gets(z);
	scanf("%s %s", a, b);
	//cout<< z << endl << a << endl << b << endl;
	int length = strlen(z);
	for(i = 0; i < length; i++)
	{
		while(z[i] == ' ')
		{
			cout << ' ';
			i++;
		}
		int k = 0;
		for(j = i; j < length; j++)
		{
			if(z[j] != ' ')
			{
				temp[k++] = z[j];
			}
			else break;
		}
		temp[k] = '\0';
		if(strcmp(temp, a) == 0)
		{
			cout << b;
		}
		else
		{
			cout << temp;
		}
		i = j;
		i--;
	}
	cout << endl;
	return 0;
}


int main(){
	char string[100][100];
	char str[1000];
	gets(str);
	int len=strlen(str);
	int i;
	int count=0;
	for(i=0;i<len+1;i++){
		if (str[i]==' '||(str[i]=='\0')){
			int k,q=0;
			for(k=i-1;k>=0;k--){
				if (str[k]==' ') break;

			}

			for(++k;k<=i;k++){
				string[count][q]=str[k];
				q++;
			}
			string[count][q-1]='\0';
			count++;
		}
	}
	char from[100];
	char to[100];
	gets(from);
	gets(to);
	char *nowword;
	int j=0;
	for(j=0;j<count;j++){
		nowword=string[j];
		if (strcmp(nowword,from)==0){
			strcpy(nowword,to);
		}
	}
	printf("%s",string[0]);
	for(i=1;i<count;i++) printf(" %s",string[i]);
	printf("\n");
	return 0;
}


int split(char* string, char word[][100] )//???word[][n]??n??????????sp[50][n]???????
{//???????????
	const char seps[]=" ,\t\n.";//????????????????????
	char *token;
	int wordNum=0;
	token=strtok(string,seps);
	while(token!=NULL)
	{
		strcpy(word[wordNum++],token);
		token=strtok(NULL,seps);
	}
	return wordNum;
}
int main()
{
	char string[100],a[100],b[100];
	char sp[50][100];
	int i,j,num;
	int count[50]={0};
	gets(string);
	gets(a);
	gets(b);
	num=split(string,sp);
	for(i=0;i<num;i++)
	{
		if(strcmp(sp[i],a)==0)

			strcpy(sp[i],b);
		else
			continue;
	}
	for(i=0;i<num-1;i++)
	{
		printf("%s ",sp[i]);
	}
	printf("%s",sp[num-1]);
	return 0;

}


int main()
{
	char buf[1000];
	char key[100];
	char temp[100];
	char rep[100];
	int i,j,n,w;
	cin.getline(buf,1000,'\n');
	cin>>key>>rep;
	i=0;
	w=0;
	while(1)
	{
		for(j=0;buf[i]!=' '&&buf[i]!=0;j++,i++)
			temp[j]=buf[i];
		temp[j]=0;
		n=strcmp(temp,key);
		if(w!=0)
				cout<<' ';
		if(n==0)
		{

			cout<<rep;
		}
		else
			cout<<temp;
		w++;
		if(buf[i]==0)
			break;
		i++;
	}
	cout<<endl;
	return 0;
}


int main()
{
	int i,j=0,flag=0;
    char s[100],a[100],b[100],temp[100];
	gets(s);
	gets(a);
	gets(b);
    for(i=0;s[i]!='\0';i++)
	{
		if(flag==1&&s[i]!=' ')
		{
			temp[j]=s[i];
			j=j+1;
		}
		else if(flag==0&&s[i]!=' ')
		{
			flag=1;
            j=0;
			temp[j]=s[i];
			j=j+1;
		}
		else if(flag==1&&s[i]==' ')
		{
			temp[j]='\0';
			if(strcmp(temp,a)==0)
				printf("%s ",b);
			else
				printf("%s ",temp);
			flag=0;
			j=0;
		}
		else
			printf("%c",s[i]);
	}
	temp[j]='\0';
	if(strcmp(temp,a)==0)
		printf("%s\n",b);
	else
		printf("%s\n",temp);
   return 0;
}


int main()
{
	char str[150],from[150],to[150],a[50];
	char *p=str;
	int i;
	gets(str);
	gets(from);
	gets(to);

	while(*p){
	for (i=0;*p!=' '&&*p!='\0';p++,i++)
	{
       a[i]=*p;
	}
	a[i]='\0';
	if(strcmp(a,from)==0)
		printf("%s",to);
	else printf("%s",a);
	if(*p)
	{
		printf(" ");
		p++;
	}
	}

    return 0;
}


int main()
{
	int i,j,ls,la,p,f;
	char s[201],a[101],b[101];

	gets(s);
	ls=strlen(s);
	gets(a);
	la=strlen(a);
	gets(b);

	s[ls]=' ';
	s[ls+1]='\0';

	i=-1;
    while (i<ls)
    {
		i++;
		p=i;
		while (s[i]!=' ')
			i++;
        if (i-p!=la)
		{
			for (j=p;j<i;j++)
				printf("%c",s[j]);
			if (i!=ls) printf(" ");
			else
			{
				printf("\n");
				break;
			}
		}
		else
		{
			f=1;
			for (j=0;j<la;j++)
				if (s[p+j]!=a[j])
				{
					f=0;
					break;
				}
				if (f==1)
				{
					printf("%s",b);
					if (i!=ls) printf(" ");
			       else
			{
				printf("\n");
				break;
			}
				}

			else
			{
			for (j=p;j<i;j++)
				printf("%c",s[j]);
			if (i!=ls) printf(" ");
			else {
				printf("\n");
				break;
			}
			}
			}
		};

	return 0;
}


int main()
{
	char s[120],s0[120];
	char a[20],b[20];
	int k=1,ls;
	cin.getline(s,100,'\n');
	cin>>a>>b;
	for(int i=0;i<strlen(s)-strlen(a)+1;i++){
		ls=strlen(s);
		if(s[i]==a[0]&&(s[i+strlen(a)]==32||s[strlen(a)+i]=='\0')&&(i==0||s[i-1]==32)){
		for(int j=1;j<strlen(a);j++)
			if(s[i+j]!=a[j]){
				k=0;continue;}}
		else k=0;
		if(k==1){
			for(int g=0;g<i;g++)
				s0[g]=s[g];
			for(int n=i+strlen(a);n<strlen(s);n++)
				s0[n-strlen(a)+strlen(b)]=s[n];
			for(int m=0;m<strlen(b);m++)
				s0[i+m]=b[m];
			for(int c=0;c<ls-strlen(a)+strlen(b);c++)
				s[c]=s0[c];
			s[ls-strlen(a)+strlen(b)]='\0';
		    i+=strlen(b)-1;}
	    k=1;}
	cout<<s<<endl;
	return 0;
}


int main() {
	char str[110];
	char a[110];
	char b[110];
	char out[2000];
	char tmp[110];
	int index = 0;
	int out_i = 0;
	int len;
	int len_a;
	int len_b;

	memset(out, 0, sizeof(out));
	memset(a, 0, sizeof(a));
	memset(b, 0, sizeof(b));

	gets(str);
	len = strlen(str);

	cin >> a >> b;
	len_a = strlen(a);
	len_b = strlen(b);

	for (int i=0; i<len; i++) {
		if (str[i] != ' ') {
			tmp[index++] = str[i];
		}
		else if (str[i] == ' '){
			tmp[index++] = '\0';
			if (!strcmp(tmp, a)) {
				for (int j=0; j<len_b; j++) {
					out[out_i++] = b[j];
				}

			}
			else {
				for (int j=0; j<strlen(tmp); j++) {
					out[out_i++] = tmp[j];
				}
			}
			out[out_i++] = ' ';
			memset(tmp, 0, sizeof(tmp));
			index = 0;
		}

		if (i == len-1) {
			tmp[index++] = '\0';
			if (!strcmp(tmp, a)) {
				for (int j=0; j<len_b; j++) {
					out[out_i++] = b[j];
				}

			}
			else {
				for (int j=0; j<strlen(tmp); j++) {
					out[out_i++] = tmp[j];
				}
			}
			//out[out_i++] = ' ';
			memset(tmp, 0, sizeof(tmp));
			index = 0;
		}
	}

	cout << out << endl;

}


int main()
{
    char s[202],a[202],b[202],ch[202];
    gets(s);
    gets(a);
    gets(b);
    int k=0;
    for(int j=0;j<strlen(s);++j)
    {
        if(s[j]!=' ')
        {
            ch[k]=s[j];
            ++k;
        }
        else
        {
            ch[k]='\0';
            if(!strcmp(ch,a))
                cout<<b<<" ";
            else
                cout<<ch<<" ";
            memset(ch,0,sizeof(char)*k);
            k=0;
        }
        if(j==strlen(s)-1)
        {
            if(!strcmp(ch,a))
                cout<<b<<endl;
            else
                cout<<ch<<endl;
        }
    }
    return 0;
}


  char * MoveNext(char *p)
 {
	 while(isalpha(*p)&&*p) p++;
	 while(!isalpha(*p)&&*p) p++;
	 return p;
 }

 int StrWords(char *p)
 {
	 int num=0;
	 while(*p!='\0')
		 if(*p==' ') p++;
		 else
		 {
			 num++;
			 for(;*p!=' '&&*p!='\0';p++);

		 }
		 return num;
 }

 int CheckSame(char *s1,char *s2)
 {
	 char str[N],*p=str;
	 while(isalpha(*s2))
		 *p++=*s2++;
	 *p='\0';
	 if(strcmp(s1,str)==0) return 1;
	 else return 0;
 }
 void SwapWord(char *p2,char *p1,char *s)
 {
	 char *p,*t1,*t2,*t=s;

	 int Dis,loop,k,len,tag,flag;

	 Dis=strlen(p2)-strlen(p1);
	 if(Dis<0)
	 {
		 tag=-1; Dis*=-1;
	 }
	 else if(Dis>0)
		 tag=1;
	 else
		 tag=0;
	 loop=StrWords(t);
	 while(loop--)
	 {
		 if(CheckSame(p1,t))
		 {
			 switch(tag)
			 {
			 case -1: p=t;
				 while(isalpha(*p)) *p++=' ';
				 p=t;
				 while(*p++)
					 *(p-Dis)=*p; break;
			 case 1: len=strlen(t);
				 p=t+len;
				 for(k=0;k<strlen(t);k++)
					 *(p+Dis)=*p--; break;
			 default: break;
			 }
			 p=t; t2=p2;
			 while(*t2)
				 *p++=*t2++;
			 while(!isalpha(*p)) p++;
		 }
		 else t=MoveNext(t);
	 }
 }

 int main()
 {
	 char sen[M],w1[N],w2[N];
     gets(sen);
     gets(w1);
     gets(w2);
     SwapWord(w2,w1,sen);
     puts(sen);

     return 0;
 }