#include<stdio.h>
int n, m;
int a[509];
struct A{
int type;
int a[509];
} b[509];
bool c[509];
char tmp[509];
int res[509];
int rl;
int checkValid(int bi)
{
int i, j, k;
int res=0;
if(c[bi])return res;
if(b[bi].type == 1){
for(i=0;i<n;i++){
if(b[bi].a[i] == 1)
{
if(a[i] == 0)
return 0;
else if(a[i]==1)
res++;
}
}
return res;
}
else{
for(i=0;i<n;i++){
if(b[bi].a[i] == 1)
{
if(a[i] == 1)
return 0;
else if(a[i]==0)
res++;
}
}
return res;
}
}
int main()
{
int i, j, k;
scanf("%d %d",&n,&m);
scanf("%s",tmp);
for(i=0;i<n;i++){
a[i] = tmp[i]-'0';
}
for(i=0;i<m;i++){
scanf("%d",&b[i].type);
scanf("%s",tmp);
for(j=0;j<n;j++){
b[i].a[j] = tmp[j]-'0';
}
}
rl=0;
bool valid = true;
while(rl<500)
{
for(i=0;i<n;i++){
if(a[i] == 1)break;
}
if(i==n){
break;
}
int ri=-1;
int rt=0;
for(i=0;i<m;i++){
int tt=checkValid(i);
if(rt<tt){
rt=tt;
ri=i;
}
}
if(ri>=0){
{
res[rl++] = ri;
for(i=0;i<n;i++){
if(b[ri].a[i]==1&&a[i]==b[ri].type)
a[i]=2;
}
c[ri]=true;
continue;
}
}
{
valid = false;
break;
}
}
if(valid){
printf("YES\n");
printf("%d\n",rl);
for(i=rl-1;i>=0;i--){
printf("%d ",res[i]+1);
}
}
else{
printf("NO\n");
}
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG4sIG07CmludCBhWzUwOV07CnN0cnVjdCBBewogICAgaW50IHR5cGU7CiAgICBpbnQgYVs1MDldOwp9IGJbNTA5XTsKYm9vbCBjWzUwOV07CmNoYXIgdG1wWzUwOV07CmludCByZXNbNTA5XTsKaW50IHJsOwppbnQgY2hlY2tWYWxpZChpbnQgYmkpCnsKICAgIGludCBpLCBqLCBrOwogICAgaW50IHJlcz0wOwogICAgaWYoY1tiaV0pcmV0dXJuIHJlczsKICAgIGlmKGJbYmldLnR5cGUgPT0gMSl7CiAgICAgICAgZm9yKGk9MDtpPG47aSsrKXsKICAgICAgICAgICAgaWYoYltiaV0uYVtpXSA9PSAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihhW2ldID09IDApCiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgIGVsc2UgaWYoYVtpXT09MSkKICAgICAgICAgICAgICAgICAgICByZXMrKzsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzOwogICAgfQogICAgZWxzZXsKICAgICAgICBmb3IoaT0wO2k8bjtpKyspewogICAgICAgICAgICBpZihiW2JpXS5hW2ldID09IDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGFbaV0gPT0gMSkKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgZWxzZSBpZihhW2ldPT0wKQogICAgICAgICAgICAgICAgICAgIHJlcysrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXM7CiAgICB9Cn0KaW50IG1haW4oKQp7CiAgICBpbnQgaSwgaiwgazsKICAgIHNjYW5mKCIlZCAlZCIsJm4sJm0pOwogICAgc2NhbmYoIiVzIix0bXApOwogICAgZm9yKGk9MDtpPG47aSsrKXsKICAgICAgICBhW2ldID0gdG1wW2ldLScwJzsKICAgIH0KICAgIGZvcihpPTA7aTxtO2krKyl7CiAgICAgICAgc2NhbmYoIiVkIiwmYltpXS50eXBlKTsKICAgICAgICBzY2FuZigiJXMiLHRtcCk7CiAgICAgICAgZm9yKGo9MDtqPG47aisrKXsKICAgICAgICAgICAgYltpXS5hW2pdID0gdG1wW2pdLScwJzsKICAgICAgICB9CiAgICB9CiAgICBybD0wOwogICAgYm9vbCB2YWxpZCA9IHRydWU7CiAgICB3aGlsZShybDw1MDApCiAgICB7CiAgICAgICAgZm9yKGk9MDtpPG47aSsrKXsKICAgICAgICAgICAgaWYoYVtpXSA9PSAxKWJyZWFrOwogICAgICAgIH0KICAgICAgICBpZihpPT1uKXsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGludCByaT0tMTsKICAgICAgICBpbnQgcnQ9MDsKICAgICAgICBmb3IoaT0wO2k8bTtpKyspewogICAgICAgICAgICBpbnQgdHQ9Y2hlY2tWYWxpZChpKTsKICAgICAgICAgICAgaWYocnQ8dHQpewogICAgICAgICAgICAgICAgcnQ9dHQ7CiAgICAgICAgICAgICAgICByaT1pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKHJpPj0wKXsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmVzW3JsKytdID0gcmk7CiAgICAgICAgICAgICAgICBmb3IoaT0wO2k8bjtpKyspewogICAgICAgICAgICAgICAgICAgIGlmKGJbcmldLmFbaV09PTEmJmFbaV09PWJbcmldLnR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAgIGFbaV09MjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNbcmldPXRydWU7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGlmKHZhbGlkKXsKICAgICAgICBwcmludGYoIllFU1xuIik7CiAgICAgICAgcHJpbnRmKCIlZFxuIixybCk7CiAgICAgICAgZm9yKGk9cmwtMTtpPj0wO2ktLSl7CiAgICAgICAgICAgIHByaW50ZigiJWQgIixyZXNbaV0rMSk7CiAgICAgICAgfQogICAgfQogICAgZWxzZXsKICAgICAgICBwcmludGYoIk5PXG4iKTsKICAgIH0KfQ==