#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define maxn 105
#define INF 0x2fffffff
int g[maxn][maxn];
int vis[maxn];
int dis[maxn];
void prim(int n)
{
int min,i,j,x,ans=0;
memset(vis,0,sizeof(vis));
fill(dis,dis+maxn,INF);
dis[1]=0;
for(i=1;i<=n;i++)
{
min=INF;
for(j=1;j<=n;j++)
if(!vis[j]&&min>dis[j])
{
min=dis[j];
x=j;
}
ans+=dis[x];
vis[x]=1;
for(j=1;j<=n;j++)
{
if(!vis[j]&&dis[j]>g[x][j])
dis[j]=g[x][j];
}
}
printf("%d\n",ans);
}
int main()
{
int n,q,ln,a,b;
int i,j;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j)
g[i][j]=INF;
else
g[i][j]=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
scanf("%d", &ln);
g[i][j]=ln;
}
scanf("%d",&q);
for(i=1;i<=q;i++)
{
scanf("%d%d",&a,&b);
g[a][b]=g[b][a]=0;
}
prim(n);
}
return 0;
}