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.[0..]
else
false
let format = System.Console.ReadLine()
let name = System.Console.ReadLine()
let res = formatEqual format name
printfn "%b" res
bGV0IHJlYyBmb3JtYXRFcXVhbCB4IHkgPQogbGV0IHN4ID0geC5Ub1N0cmluZygpCiBsZXQgc3kgPSB5LlRvU3RyaW5nKCkKIGlmIHN4Lkxlbmd0aC5FcXVhbHMoMCkgdGhlbiBzeS5MZW5ndGguRXF1YWxzKDApCiBlbGlmIHN5Lkxlbmd0aC5FcXVhbHMoMCkgdGhlbgogICAgIGZhbHNlCiAgIGVsaWYgc3guQ2hhcnMoMCkuRXF1YWxzKHN5LkNoYXJzKDApKSB0aGVuIGZvcm1hdEVxdWFsIHN4LlsxLi5dIHN5LlsxLi5dCgogICAgIGVsaWYgc3guQ2hhcnMoMCkuRXF1YWxzKCc/JykgdGhlbiBmb3JtYXRFcXVhbCBzeC5bMS4uXSBzeS5bMS4uXSAgICAgZWxpZiBzeC5DaGFycygwKS5FcXVhbHMoJyonKSB0aGVuIGZvcm1hdEVxdWFsIHN4LlswLi5dIHN5LlsxLi5dIHx8IGZvcm1hdEVxdWFsIHN4LlsxLi5dIHN5LlswLi5dCiAgICAgIGVsc2UKICAgICBmYWxzZQoKbGV0IGZvcm1hdCA9IFN5c3RlbS5Db25zb2xlLlJlYWRMaW5lKCkKbGV0IG5hbWUgPSBTeXN0ZW0uQ29uc29sZS5SZWFkTGluZSgpCmxldCByZXMgPSBmb3JtYXRFcXVhbCBmb3JtYXQgbmFtZQoKcHJpbnRmbiAiJWIiIHJlcwo=