import sys input = sys.stdin.readline A=input().strip() B=input().strip() XA=[] for a in A: if a=="?" or a=="*": XA[-1]+=a else: XA.append(a) XB=[] for a in B: if a=="?" or a=="*": XB[-1]+=a else: XB.append(a) DP=[[1<<30]*(len(XB)+1) for i in range(len(XA)+1)] DP[0][0]=0 for i in range(len(XA)+1): for j in range(len(XB)+1): if i==len(XA) and j==len(XB): continue if i==len(XA): d=XB[j] if len(d)==2: DP[i][j+1]=min(DP[i][j+1],DP[i][j]) else: DP[i][j+1]=min(DP[i][j+1],DP[i][j]+1) continue if j==len(XB): c=XA[i] if len(c)==2: DP[i+1][j]=min(DP[i+1][j],DP[i][j]) else: DP[i+1][j]=min(DP[i+1][j],DP[i][j]+1) continue c=XA[i] d=XB[j] #print(c,d,DP) DP[i+1][j]=min(DP[i+1][j],DP[i][j]+1) DP[i][j+1]=min(DP[i][j+1],DP[i][j]+1) DP[i+1][j+1]=min(DP[i+1][j+1],DP[i][j]+1) if c[0]==d[0]: DP[i+1][j+1]=min(DP[i+1][j+1],DP[i][j]) if len(c)==2: DP[i+1][j]=min(DP[i+1][j],DP[i][j]) if len(d)==2: DP[i][j+1]=min(DP[i][j+1],DP[i][j]) if c[-1]=="*": if c[0]==d[0]: DP[i][j+1]=min(DP[i][j+1],DP[i][j]) if d[-1]=="*": if c[0]==d[0]: DP[i+1][j]=min(DP[i+1][j],DP[i][j]) print(DP[-1][-1])