#include "testlib.h"
#define int long long
const int N=1e3+10,M=2e5+10;
int a[M];
int s[N][N];
int id[N][N];
int f[N];
signed main(int argc, char* argv[]) {
    registerTestlibCmd(argc, argv);
    int p=inf.readInt();//×ÓÈÎÎñ±àºÅ 
    int t=inf.readInt();
    while(t--){
	    int n=inf.readInt();
	    int k=inf.readInt();
	    if(k<=1 || n<=k){
	    	if(!(k==0 && n==1) && ouf.readInt()!=-1){
	    		quitf(_wa, "The answer is wrong.");
			}
			if(!(k==0 && n==1))continue;
		}
	    for(int i=1;i<=n;i++){
			a[i]=ouf.readInt();
			if((p<=4 && a[i]>100000000) || (p==5 && a[i]>1000000)){
				quitf(_wa, "The answer is wrong.");
			}
			if(a[i]<0){
				quitf(_wa, "The answer is wrong.");
			}
		}
		for(int i=2;i<=n;i++){
			if(a[i]<=a[i-1]){
				quitf(_wa, "The answer is wrong.");
			}
		}
		for(int i=1;i<=n;i++){
			for(int j=0;j<=n;j++)f[j]=0;
			f[i]=1;
			int p=0;
			for(int j=1;j<=k;j++){
				s[i][j]=ouf.readInt();
				id[i][j]=ouf.readInt();
				if(id[i][j]>n || id[i][j]<1 || (s[i][j]!=-1 && s[i][j]!=1)){
					quitf(_wa, "The answer is wrong.");
				}
				if(f[id[i][j]]){
					quitf(_wa, "The answer is wrong.");
				}
				f[id[i][j]]=1;
				p+=s[i][j]*a[id[i][j]];
			}
			if(p!=a[i]){
				quitf(_wa, "The answer is wrong.");
			}
		}
	}
    quitf(_ok, "The answer is correct.");
    return 0; 
}

