MOD = 10**9+7 N = int(input()) L = list(map(int,input().split())) R = list(map(int,input().split())) D = list(map(int,input().split())) if sum(D)==0: print(1) else: flag = 1 for i in range(N-1,-1,-1): if flag==1 and D[i]==0: flag = 0 if flag==0 and D[i]>0: flag = -1 break if flag<0: print(0) else: ind = 0 for i in range(N): if D[i]==0: ind = i+1 else: break r1 = (R[ind]-L[ind])%(MOD-1) r2 = L[ind]%(MOD-1) ans = (pow(10,r1,MOD)-1)*pow(10,r2,MOD)*pow(9,MOD-2,MOD)%MOD for i in range(ind+1,N): r1 = (R[i]-L[i])%(MOD-1) r2 = L[i]%(MOD-1) cnt = (pow(10,r1,MOD)-1)*pow(10,r2,MOD)*pow(9,MOD-2,MOD)%MOD if D[i-1]==D[i]: cnt = (cnt+1)%MOD ans = ans*cnt%MOD print(ans)