/*
TASK:food
LANG:C++
*/
/*
TASK:food
LANG:C++
*/
#include<stdio.h>

int n,m,d;
struct qw{int cena;} A[80];
struct offer{int cena,no,ce,pro[80];} P[80];
int min(int a,int b)
{if(a>b)return b;
 return a;
}
void find(int z,int y)
{for(int i=1;i<z;i++)
 if(P[i].pro[y]==P[z].pro[y])
   P[i].ce=P[i].ce-A[y].cena;
}
void vhod()
{int a,b,k;
 scanf("%d %d",&n,&m);
 for(int i=1;i<=n;i++)
  scanf("%d",&A[i].cena);
 for(int j=1;j<=m;j++)
  {scanf("%d",&P[j].cena);
   scanf("%d",&a);P[j].no=a;
     if(a==1)
     {scanf("%d",&d);A[d].cena=P[j].cena;P[j].pro[d]=1;P[j].ce=A[P[j].pro[d]].cena;find(j,d);}
     else for( k=1;k<=a;k++)
	 {scanf("%d",&b);
	  P[j].pro[b]=1;
	  P[j].ce+=A[b].cena;
	 }
   }
}

void sol()
{int v;
 for(int i=1;i<=m;i++)
  P[i].ce-=P[i].cena;
  v=P[1].ce;

 for(int h=2;h<=m;h++)
     if(v>P[h].ce)v=P[h].ce;

if(v<0){v*=(-1);printf("%d\n",v);}
   else printf("0\n");

}
int main()
{vhod();
 sol();
 return 0;
}
