var input = require('fs').readFileSync('/dev/stdin', 'utf8');
input=input.replace(/\?/g,".");
var arr=input.trim().split("\n");
while(true){
   var nm=arr.shift().split(" ").map(Number);
   var n=nm[0];
   var m=nm[1];
   if(n==0 && m==0)break;
   var permit=[];
   var deny=[];
   while(n--){
      var rule=arr.shift().split(" ");
      var re = new RegExp(rule[1]+rule[2]);
      if(rule[0]=="permit")permit.push(re);
      else deny.push(re);
   }
   var ans=[];
   while(m--){
      var packet=arr.shift().split(" ");
      var str=packet[0]+packet[1];
      var flag=[];
      flag[0]=permit.some(function(v){
         return v.test(str);
      });
      flag[1]=deny.some(function(v){
         return v.test(str);
      });
      if(flag[0]==true && flag[1]==false)ans.push(packet.join(" "));
   }
   console.log(ans.length);
   ans.forEach(function(v){console.log(v);});
}