#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
ll n,q;cin>>n>>q;
ll b[n][n];
for(ll i=0;i<n;i++)
{
for(ll j=0;j<n;j++)
{
cin>>b[i][j];
}
}
ll ans[n];
memset(ans,0,sizeof(ans));
ll h;
for(ll i=1;i<(n-1);)
{
ll x=b[0][i];
ll y=b[0][i+1];
ll z=b[i][i+1];
h=i+1;
if(x+y==z&&x!=0)
{
ans[i]=x-2*x;
ans[i+1]=y;
i++;
}
else if(x==0)
{
ans[i]=0;
}
else
{
ans[i]=x-2*x;
ans[i+1]=y-2*y;
i++;
}
i++;
}
if(h==n-1)
{
ll i=n-2;
ll x=b[0][i];
ll y=b[0][i+1];
ll z=b[i][i+1];
if(x+y==z&&x!=0)
{
if(x<0)
ans[i+1]=y;
else ans[i+1]=y-2*y;
}
else if(x==0)
{
ll c=-1;
for(ll j=1;j<i;j++)
{
if(ans[i]!=0) {c=j;break;}
}
if(c==-1) {ans[i+1]=y-2*y;}
else{
ll x=b[0][c];
ll y=b[0][i+1];
ll z=b[c][i+1];
if(x+y==z) {
if(x<0)
ans[i+1]=y;
else ans[i+1]=y-2*y;
}
else{
if(x<0)
ans[i+1]=y-2*y;
else ans[i+1]=y;
}
}
}
else
{
if(x<0)
ans[i+1]=y-2*y;
else ans[i+1]=y;
}
}
for(ll i=0;i<n;i++)
{
cout<<ans[i]<<" ";
}
cout<<endl;
while(q--)
{
ll p;cin>>p;
p--;
ll a[n];
for(ll i=0;i<n;i++)
{
cin>>a[i];
}
for(ll i=0;i<n;i++)
{
b[i][p]=a[i];
b[p][i]=a[i];
}
h=0;
for(ll i=1;i<(n-1);)
{
h=i+1;
ll x=b[0][i];
ll y=b[0][i+1];
ll z=b[i][i+1];
if((x+y)==z&&x!=0)
{
ans[i]=x-2*x;
ans[i+1]=y;
i++;
}
else if(x==0)
{
ans[i]=0;
}
else
{
ans[i]=x-2*x;
ans[i+1]=y-2*y;
i++;
}
i++;
}
if(h==n-1&&b[0][n-2]==0)
{
ll i=n-2;
ll x=b[0][i];
ll y=b[0][i+1];
ll z=b[i][i+1];
if(x+y==z&&x!=0)
{
if(x<0)
ans[i+1]=y;
else ans[i+1]=y-2*y;
}
else if(x==0)
{
ll c=-1;
for(ll j=1;j<i;j++)
{
if(ans[j]!=0) {c=j;break;}
}
if(c==-1) {ans[i+1]=y-2*y;}
else{
ll x=b[0][c];
ll y=b[0][i+1];
ll z=b[c][i+1];
if(x+y==z) {
if(x<0)
ans[i+1]=y;
else ans[i+1]=y-2*y;
}
else{
if(x<0)
ans[i+1]=y-2*y;
else ans[i+1]=y;
}
}
}
else
{
if(x<0)
ans[i+1]=y-2*y;
else ans[i+1]=y;
}
}
for(ll i=0;i<n;i++)
{
cout<<ans[i]<<" ";
}
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKaW50IG1haW4oKQp7CglsbCBuLHE7Y2luPj5uPj5xOwoJbGwgYltuXVtuXTsKCWZvcihsbCBpPTA7aTxuO2krKykKCXsKCQlmb3IobGwgaj0wO2o8bjtqKyspCgkJewoJCQljaW4+PmJbaV1bal07CgkJfQoJfQoJbGwgYW5zW25dOwoJbWVtc2V0KGFucywwLHNpemVvZihhbnMpKTsKCWxsIGg7Cglmb3IobGwgaT0xO2k8KG4tMSk7KQoJewoJCWxsIHg9YlswXVtpXTsKCQlsbCB5PWJbMF1baSsxXTsKCQlsbCB6PWJbaV1baSsxXTsKCQloPWkrMTsKCQlpZih4K3k9PXomJnghPTApCgkJewoJCQlhbnNbaV09eC0yKng7CgkJCWFuc1tpKzFdPXk7CgkJCWkrKzsKCQl9CgkJZWxzZSBpZih4PT0wKQoJCXsKCQkJYW5zW2ldPTA7CgkJfQoJCWVsc2UKCQl7CgkJCWFuc1tpXT14LTIqeDsKCQkJYW5zW2krMV09eS0yKnk7CgkJCWkrKzsKCQl9CgkJaSsrOwoJfQoJaWYoaD09bi0xKQoJewoJbGwgaT1uLTI7CiAgICAgICAgICBsbCB4PWJbMF1baV07CgkJbGwgeT1iWzBdW2krMV07CgkJbGwgej1iW2ldW2krMV07CgkJaWYoeCt5PT16JiZ4IT0wKSAKCQl7CgkJICAgICAgICBpZih4PDApIAoJCQlhbnNbaSsxXT15OwoJCQllbHNlIGFuc1tpKzFdPXktMip5OwoJCQkKCQl9CgkJZWxzZSBpZih4PT0wKQoJCXsKCQlsbCBjPS0xOwoJCQlmb3IobGwgaj0xO2o8aTtqKyspIAoJCQl7CgkJCSAgaWYoYW5zW2ldIT0wKSB7Yz1qO2JyZWFrO30gCgkJCX0gCgkJCWlmKGM9PS0xKSB7YW5zW2krMV09eS0yKnk7fSAKCQkJZWxzZXsKCQkJbGwgeD1iWzBdW2NdOwoJCWxsIHk9YlswXVtpKzFdOwoJCWxsIHo9YltjXVtpKzFdOwoJCWlmKHgreT09eikgewoJCSAgICAgIGlmKHg8MCkgCgkJCWFuc1tpKzFdPXk7CgkJCWVsc2UgYW5zW2krMV09eS0yKnk7CgkJfSAKCQllbHNlewoJCSAgIGlmKHg8MCkgCgkJCWFuc1tpKzFdPXktMip5OwoJCQllbHNlIGFuc1tpKzFdPXk7CgkJfSAKCQl9IAoJCX0KCQllbHNlCgkJewoJCQlpZih4PDApIAoJCQlhbnNbaSsxXT15LTIqeTsKCQkJZWxzZSBhbnNbaSsxXT15OwoJCQkKCQl9Cgl9CiAgICBmb3IobGwgaT0wO2k8bjtpKyspCiAgICB7CiAgICAJY291dDw8YW5zW2ldPDwiICI7CiAgICB9CiAgICBjb3V0PDxlbmRsOwogICAgd2hpbGUocS0tKQogICAgewogICAgCWxsIHA7Y2luPj5wOwogICAgCXAtLTsKICAgIAlsbCBhW25dOwogICAgCWZvcihsbCBpPTA7aTxuO2krKykKICAgIAl7CiAgICAJCWNpbj4+YVtpXTsKIAogICAgCX0KICAgIAlmb3IobGwgaT0wO2k8bjtpKyspCiAgICAJewogICAgCQliW2ldW3BdPWFbaV07CiAgICAJCWJbcF1baV09YVtpXTsKICAgIAl9CiAgICAgaD0wOyAgIAoJZm9yKGxsIGk9MTtpPChuLTEpOykKCXsKCQloPWkrMTsKCQlsbCB4PWJbMF1baV07CgkJbGwgeT1iWzBdW2krMV07CgkJbGwgej1iW2ldW2krMV07CgkJaWYoKHgreSk9PXomJnghPTApCgkJewoJCQlhbnNbaV09eC0yKng7CgkJCWFuc1tpKzFdPXk7CgkJCWkrKzsKCQl9CgkJZWxzZSBpZih4PT0wKQoJCXsKICAgICAgICAgIGFuc1tpXT0wOwogIAoJCX0KCQllbHNlCgkJewoJCQlhbnNbaV09eC0yKng7CgkJCWFuc1tpKzFdPXktMip5OwoJCQlpKys7CgkJfQoJCWkrKzsKCX0KCWlmKGg9PW4tMSYmYlswXVtuLTJdPT0wKQoJewogICAgICAgIGxsIGk9bi0yOwogICAgICAgICAgbGwgeD1iWzBdW2ldOwoJCWxsIHk9YlswXVtpKzFdOwoJCWxsIHo9YltpXVtpKzFdOwoJCWlmKHgreT09eiYmeCE9MCkgCgkJewoJCSAgICAgICAgaWYoeDwwKSAKCQkJYW5zW2krMV09eTsKCQkJZWxzZSBhbnNbaSsxXT15LTIqeTsKCQkJCgkJfQoJCWVsc2UgaWYoeD09MCkKCQl7CgkJbGwgYz0tMTsKCQkJZm9yKGxsIGo9MTtqPGk7aisrKSAKCQkJewoJCQkgIGlmKGFuc1tqXSE9MCkge2M9ajticmVhazt9IAoJCQl9IAoJCQlpZihjPT0tMSkge2Fuc1tpKzFdPXktMip5O30gCgkJCWVsc2V7CgkJCWxsIHg9YlswXVtjXTsKCQlsbCB5PWJbMF1baSsxXTsKCQlsbCB6PWJbY11baSsxXTsKCQlpZih4K3k9PXopIHsKCQkgICAgICBpZih4PDApIAoJCQlhbnNbaSsxXT15OwoJCQllbHNlIGFuc1tpKzFdPXktMip5OwoJCX0gCgkJZWxzZXsKCQkgICBpZih4PDApIAoJCQlhbnNbaSsxXT15LTIqeTsKCQkJZWxzZSBhbnNbaSsxXT15OwoJCX0gCgkJfSAKCQl9CgkJZWxzZQoJCXsKCQkJaWYoeDwwKSAKCQkJYW5zW2krMV09eS0yKnk7CgkJCWVsc2UgYW5zW2krMV09eTsKCQkJCgkJfQoJfQogICAgZm9yKGxsIGk9MDtpPG47aSsrKQogICAgewogICAgCWNvdXQ8PGFuc1tpXTw8IiAiOwogICAgfQogICAgY291dDw8ZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9IAoK