/*
mdtm.c
My deterministic turing machine
Sat Sep 13 14:14:42 EDT 1997
Sat Sep 13 14:29:24 EDT 1997
Sat Sep 13 14:41:31 EDT 1997
*/

#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>

typedef struct {
	int d, m, q;
} triple;

char tape[1001];
triple *delta;
int h=0; /* where the head is */
int q=0; /* current state */
int d; /* top non-blank digit */
int s; /* num active states */

void reject() {
	printf("reject %s\n",tape);
	exit(0);
}

void accept() {
	printf("accept %s\n",tape);
	exit(0);
}

int main()
{
	int r,c, i;
	scanf(" %d %d ",&d, &s);
	delta = malloc(sizeof(triple)*s*10);
	for (i=0;i<1001;i++) tape[i]='\0';
	/* Read the table. */
	for ( r=0; r < s; r++ ) {
		for ( c=0; c <= d; c++ ) {
			scanf(" %d %d %d ",
				&delta[10*r+c].d,
				&delta[10*r+c].m,
				&delta[10*r+c].q );
		}
		scanf(" %d %d %d ",
			&delta[10*r+9].d,
			&delta[10*r+9].m,
			&delta[10*r+9].q );
	}
	scanf(" %s", tape);
	
	/* Now run the machine. */
	q=h=0;
	while( q >=0 ) {
		int qp;
		if ( h < 0 ) reject();
		if ( q > s ) {fprintf(stderr,"q=%d too big\n",q); exit(1);}
		{ 
		int sym = tape[h];
		triple t;
		if ( sym == '\0' ) sym=tape[h]='9';
		t = delta[10*q + sym-'0'];
		tape[h] = '0' + t.d;
		h += t.m;
		q = t.q;
		}
	}
	switch(q) {
	case -1: accept(); break;
	case -2: reject(); break;
	default: fprintf(stderr,"Bug!\n");
	}
	
	return 0;
}

