#include <stdio.h>

int match(char *str1,char*str2){
    if((str1[0]=='\0')&&(str2[0]=='\0')) return 1;
    else if ((str1[0]=='\0')||(str2[0]=='\0')) return 0;
    
    if((str1[0]=='?')||(str1[0]==str2[0])) return match(str1+1, str2+1);
    if(str1[0]=='*') {
        if(*(str1+1)=='*')
        return (match(str1+1+1, str2)||match(str1+1+1, str2+1)||match(str1+1, str2+1));
        else return (match(str1+1, str2)||match(str1+1, str2+1)||match(str1, str2+1));
    }
        
    return 0;
}

int main(){
    char str1[1000],str2[1000];
    int loc,len1,len2,i,j;
    while(scanf("%s",str1)!=-1){
        scanf("%s",str2);
        len1=strlen(str1);
        len2=strlen(str2);
        int flag=1;
        for(i=0;i<len1;i++){
            if((str1[i]>='A')&&(str1[i]<='Z'))
                str1[i]+=32;
        }
        for(i=0;i<len2;i++){
            if((str2[i]>='A')&&(str2[i]<='Z'))
                str2[i]+=32;
      
            if(((str2[i]<'a')||(str2[i]>'z'))&&(str2[i]!='.')&&((str2[i]<'0')||(str2[i]>'9'))){
                flag=0;
            }
        }
        

        if((flag)&&(match(str1,str2))) printf("true\n");
        else printf("false\n");
    }
    
    return 0;
}