let rec formatEqual x y =
let sx = x.ToString ( )
let sy = y.ToString ( )
if sx.Length .Equals ( 0 ) then sy.Length .Equals ( 0 )
elif sy.Length .Equals ( 0 ) then
false
elif sx.Chars ( 0 ) .Equals ( sy.Chars ( 0 ) ) then formatEqual sx.[ 1 ..] sy.[ 1 ..]
elif sx.Chars ( 0 ) .Equals ( '?' ) then formatEqual sx.[ 1 ..] sy.[ 1 ..] elif sx.Chars ( 0 ) .Equals ( '*' ) then formatEqual sx.[ 0 ..] sy.[ 1 ..] || formatEqual sx.[ 1 ..] sy
else
false
let format = System.Console .ReadLine ( )
let name = System.Console .ReadLine ( )
let res = formatEqual format name
printfn "%b" res
bGV0IHJlYyBmb3JtYXRFcXVhbCB4IHkgPQogbGV0IHN4ID0geC5Ub1N0cmluZygpCiBsZXQgc3kgPSB5LlRvU3RyaW5nKCkKIGlmIHN4Lkxlbmd0aC5FcXVhbHMoMCkgdGhlbiBzeS5MZW5ndGguRXF1YWxzKDApCiBlbGlmIHN5Lkxlbmd0aC5FcXVhbHMoMCkgdGhlbgogICAgIGZhbHNlCiAgIGVsaWYgc3guQ2hhcnMoMCkuRXF1YWxzKHN5LkNoYXJzKDApKSB0aGVuIGZvcm1hdEVxdWFsIHN4LlsxLi5dIHN5LlsxLi5dCgogICAgIGVsaWYgc3guQ2hhcnMoMCkuRXF1YWxzKCc/JykgdGhlbiBmb3JtYXRFcXVhbCBzeC5bMS4uXSBzeS5bMS4uXSAgICAgZWxpZiBzeC5DaGFycygwKS5FcXVhbHMoJyonKSB0aGVuIGZvcm1hdEVxdWFsIHN4LlswLi5dIHN5LlsxLi5dIHx8IGZvcm1hdEVxdWFsIHN4LlsxLi5dIHN5CiAgICAgIGVsc2UKICAgICBmYWxzZQoKbGV0IGZvcm1hdCA9IFN5c3RlbS5Db25zb2xlLlJlYWRMaW5lKCkKbGV0IG5hbWUgPSBTeXN0ZW0uQ29uc29sZS5SZWFkTGluZSgpCmxldCByZXMgPSBmb3JtYXRFcXVhbCBmb3JtYXQgbmFtZQoKcHJpbnRmbiAiJWIiIHJlcwo=