#include<stdlib.h>
int a[650][650],aa[650][650],i,j,k,m,n,mi,b[650],c[650],d[650],e[650],t,t1,t2,t3,t4,r,f,kt,st,fl,dl[60000];
int min(int a,int b){
int t;
if (a<b) t=a; else t=b;
return t;
}
int main(){
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++){
for (j=1;j<=m;j++){
t1=(i-1)*m+j;
//printf("%d %d\n",i,j);
scanf("%d",&t);
b[t1]=t;
if (j!=1) {a[t1-1][0]++;t2=a[t1-1][0];a[t1-1][t2]=t1;c[t1]++;}
scanf("%d",&t);
for (k=1;k<=t;k++){
scanf("%d%d",&t2,&t3);
t2++;t3++;
t2=(t2-1)*m+t3;
a[t2][0]++;a[t2][a[t2][0]]=t1;
c[t1]++;
}
}}
t4=0;
n*=m;fl=1;
while (t4<n&&fl==1){
fl=0;
for (i=1;i<=n;i++){
if (c[i]==0){
fl=1;
c[i]=-1;d[i]=1;
for (j=1;j<=a[i][0];j++){
c[a[i][j]]--;
}
t4++;
}}}
t4=0;
for (i=1;i<=n;i++){
if (d[i]==1){
t4++;e[t4]=i;
}}
st=0;
for (i=1;i<=n;i++){
if (d[i]==1){ t1=e[i];
// printf("%d\n",i);
if (b[i]>0) {aa[0][t1]=b[i];st+=b[i];} else {
if (b[i]<0) {aa[t1][t4+1]=-b[i];}
}
for (j=1;j<=a[i][0];j++){
t=a[i][j];
// printf("%d ",a[i][j]);
if (d[t]==1) {t=e[t];
aa[t1][t]=99999999;}
}
//printf("\n");
}
}
//system("pause");
t4++;
for (i=0;i<=t4;i++){
for (j=0;j<=t4;j++){
a[i][j]=0;
}
}
//标号
f=1;r=1;
for (i=0;i<=n;i++){
d[i]=0;c[i]=0;
}
n=t4;d[n]=1;dl[1]=n;
while (f<=r){
kt=r;
for (i=f;i<=r;i++){
t1=dl[i];
for (j=0;j<n;j++){
if (aa[j][t1]!=0){
if (d[j]==0){kt++;dl[kt]=j;d[j]=d[t1]+1;}
}
}
}
f=r+1;r=kt;
}
f=1;r=0;
for (i=1;i<=t4;i++){
if (aa[0][i]!=0){
c[i]=aa[0][i];a[0][i]=aa[0][i];a[i][0]=-aa[0][i];
r++;dl[r]=i;
}}
//for (i=0;i<=n;i++)
// printf("%d ",d[i]);
//printf("\n");
//system("pause");
//下为预流推进
d[0]=n+2;
while (f<=r){
kt=r;
for (i=f;i<=r;i++){
t1=dl[i];
while (c[t1]>0){
for (j=0;j<=n;j++){
if (a[t1][j]<aa[t1][j]&&d[j]==d[t1]-1){
t3=aa[t1][j]-a[t1][j];
if (t3>c[t1]) t3=c[t1];
a[t1][j]+=t3;a[j][t1]-=t3;c[t1]-=t3;
c[j]+=t3;
if (j!=n&&j!=0) {kt++;dl[kt]=j;}
// printf("%d %d\n",j,t3);
}
}
if (c[t1]>0){
mi=99999999;
for (j=0;j<=n;j++){
if (a[t1][j]<aa[t1][j])
mi=min(mi,d[j]);
}
d[t1]=mi+1;
}
// printf("%d %d %d %d %d\n",c[t1],t1,d[t1],aa[4][5],n);
// system("pause");
}
//system("pause");
}
f=r+1;r=kt;
//printf("%d %d\n",f,r);
}
st-=c[n];
printf("%d\n",st);
//system("pause");
}
wa:50,,,,后4个点全wa,不知原因,想问下哪里写错了。