#include<bits/stdc++.h>
using namespace std;
int n;
int a[1001];
int sign[1001][1001];// stores 0 if i and j have same sign else 1
int mat[1001][1001];// matrix for storing the modulus of diference
/* in solve function I am first I am considering the 2nd element as negative and then computing all other elements
using sign array and then checking whether a[] justifies mat[][] or not.*/
void solve(){
int i,j;
a[2]=-1*mat[1][2];
for(i=3;i<=n;++i){
if(sign[2][i]==0)
a[i]=-1*mat[1][i];
else
a[i]=mat[1][i];
}
/*for(i=1;i<=n;++i)
cout<<a[i];*/
int flag=1;
for(i=2;i<n;++i){
for(j=i+1;j<=n;++j){
if(abs(a[i]-a[j])!=mat[i][j]){
flag=0;
break;
}
}
if(flag==0)
break;
}
if(flag==1)
return;
a[2]=abs(mat[1][2]);
for(i=3;i<=n;++i){
if(sign[2][i]==0)
a[i]=mat[1][i];
else
a[i]=-1*mat[1][i];
}
for(i=2;i<n;++i){
for(j=i+1;j<=n;++j){
if(abs(a[i]-a[j])!=mat[i][j]){
flag=0;
break;
}
}
}
return;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
a[1]=0;
int q,i,j,x;
memset(sign,0,sizeof(sign));
cin>>n>>q;
for(i=1;i<=n;++i){
for(j=1;j<=n;++j)
cin>>mat[i][j];
}
/* for(i=1;i<=n;++i){
for(j=1;j<=n;++j)
cout<<mat[i][j];
}*/
for(i=1;i<=n;++i){
for(j=1;j<=n;++j)
if(abs(mat[1][i]-mat[1][j])==mat[i][j]){
sign[i][j]=0;
}else
sign[i][j]=1;
sign[j][i]=sign[i][j];
}
solve();
for(i=1;i<=n;++i)
cout<<a[i]<<" ";
cout<<endl;
while(q--){
cin>>x;
for(i=1;i<=n;++i){
cin>>mat[x][i];
mat[i][x]=mat[x][i];
}
for(i=1;i<=n;++i){
if(abs(mat[1][x]-mat[1][i])==mat[i][x]){
sign[i][x]=0;
}else
sign[i][x]=1;
sign[x][i]=sign[i][x];
}
solve();
for(i=1;i<=n;++i)
cout<<a[i]<<" ";
cout<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG47CmludCBhWzEwMDFdOwppbnQgc2lnblsxMDAxXVsxMDAxXTsvLyBzdG9yZXMgMCBpZiBpIGFuZCBqIGhhdmUgc2FtZSBzaWduIGVsc2UgMQppbnQgbWF0WzEwMDFdWzEwMDFdOy8vIG1hdHJpeCBmb3Igc3RvcmluZyB0aGUgbW9kdWx1cyBvZiBkaWZlcmVuY2UKCi8qIGluIHNvbHZlIGZ1bmN0aW9uIEkgYW0gZmlyc3QgSSBhbSBjb25zaWRlcmluZyB0aGUgMm5kIGVsZW1lbnQgYXMgbmVnYXRpdmUgYW5kIHRoZW4gY29tcHV0aW5nIGFsbCBvdGhlciBlbGVtZW50cyAKdXNpbmcgc2lnbiBhcnJheSBhbmQgdGhlbiBjaGVja2luZyB3aGV0aGVyIGFbXSBqdXN0aWZpZXMgbWF0W11bXSBvciBub3QuKi8Kdm9pZCBzb2x2ZSgpewogICAgaW50IGksajsKICAgIGFbMl09LTEqbWF0WzFdWzJdOwogICAgZm9yKGk9MztpPD1uOysraSl7CiAgICAgICAgaWYoc2lnblsyXVtpXT09MCkKICAgICAgICAgICAgYVtpXT0tMSptYXRbMV1baV07CiAgICAgICAgZWxzZQogICAgICAgICAgICBhW2ldPW1hdFsxXVtpXTsKICAgIH0KICAgIC8qZm9yKGk9MTtpPD1uOysraSkKICAgICAgICBjb3V0PDxhW2ldOyovCiAgICBpbnQgZmxhZz0xOwogICAgZm9yKGk9MjtpPG47KytpKXsKICAgICAgICBmb3Ioaj1pKzE7ajw9bjsrK2opewogICAgICAgICAgICBpZihhYnMoYVtpXS1hW2pdKSE9bWF0W2ldW2pdKXsKICAgICAgICAgICAgICAgIGZsYWc9MDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKGZsYWc9PTApCiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYoZmxhZz09MSkKICAgICAgICByZXR1cm47CgogICAgYVsyXT1hYnMobWF0WzFdWzJdKTsKICAgIGZvcihpPTM7aTw9bjsrK2kpewogICAgICAgIGlmKHNpZ25bMl1baV09PTApCiAgICAgICAgICAgIGFbaV09bWF0WzFdW2ldOwogICAgICAgIGVsc2UKICAgICAgICAgICAgYVtpXT0tMSptYXRbMV1baV07CiAgICB9CiAgICAKICAgIGZvcihpPTI7aTxuOysraSl7CiAgICAgICAgZm9yKGo9aSsxO2o8PW47KytqKXsKICAgICAgICAgICAgaWYoYWJzKGFbaV0tYVtqXSkhPW1hdFtpXVtqXSl7CiAgICAgICAgICAgICAgICBmbGFnPTA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICByZXR1cm47ICAKfQppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgYVsxXT0wOwogICAgaW50IHEsaSxqLHg7CiAgICBtZW1zZXQoc2lnbiwwLHNpemVvZihzaWduKSk7CiAgICBjaW4+Pm4+PnE7CiAgICBmb3IoaT0xO2k8PW47KytpKXsKICAgICAgICBmb3Ioaj0xO2o8PW47KytqKQogICAgICAgICAgICBjaW4+Pm1hdFtpXVtqXTsKICAgIH0KICAgLyogZm9yKGk9MTtpPD1uOysraSl7CiAgICAgICAgZm9yKGo9MTtqPD1uOysraikKICAgICAgICAgICAgY291dDw8bWF0W2ldW2pdOwogICAgfSovCiAgICBmb3IoaT0xO2k8PW47KytpKXsKICAgICAgICBmb3Ioaj0xO2o8PW47KytqKQogICAgICAgICAgICBpZihhYnMobWF0WzFdW2ldLW1hdFsxXVtqXSk9PW1hdFtpXVtqXSl7CiAgICAgICAgICAgICAgICBzaWduW2ldW2pdPTA7CiAgICAgICAgICAgIH1lbHNlCiAgICAgICAgICAgIHNpZ25baV1bal09MTsKICAgICAgICAgICAgc2lnbltqXVtpXT1zaWduW2ldW2pdOwogICAgfQogICAgCiAgICAKICAgIHNvbHZlKCk7CiAgICBmb3IoaT0xO2k8PW47KytpKQogICAgICAgIGNvdXQ8PGFbaV08PCIgIjsKICAgIGNvdXQ8PGVuZGw7CiAgICB3aGlsZShxLS0pewogICAgICAgIGNpbj4+eDsKICAgICAgICBmb3IoaT0xO2k8PW47KytpKXsKICAgICAgICAgICAgY2luPj5tYXRbeF1baV07CiAgICAgICAgICAgIG1hdFtpXVt4XT1tYXRbeF1baV07CiAgICAgICAgfQogICAgIAogICAgICAgIGZvcihpPTE7aTw9bjsrK2kpewogICAgICAgICAgICBpZihhYnMobWF0WzFdW3hdLW1hdFsxXVtpXSk9PW1hdFtpXVt4XSl7CiAgICAgICAgICAgICAgICBzaWduW2ldW3hdPTA7CiAgICAgICAgICAgIH1lbHNlCiAgICAgICAgICAgIHNpZ25baV1beF09MTsKICAgICAgICAgICAgc2lnblt4XVtpXT1zaWduW2ldW3hdOwogICAgfQogICAgc29sdmUoKTsKICAgIGZvcihpPTE7aTw9bjsrK2kpCiAgICAgICAgY291dDw8YVtpXTw8IiAiOwogICAgY291dDw8ZW5kbDsKICAgIH0KcmV0dXJuIDA7Cn0=