N=int(input()) L=list(map(int,input().split())) R=list(map(int,input().split())) D=list(map(int,input().split())) for i in range(N-1): if D[i]!=0 and D[i+1]==0: print(0) exit() DP=[[0]*9 for i in range(N+1)] DP[0][0]=1 mod=10**9+7 X,Y=0,0 inv9=pow(9,mod-2,mod) for i in range(N): if D[i]==0: DP[i+1][0]=1 continue X=(pow(10,R[i]%(mod-1),mod)-1)*inv9%mod Y=(pow(10,L[i]%(mod-1),mod)-1)*inv9%mod for j in range(9): for k in range(9): DP[i+1][(j+k)%9]=(DP[i+1][(j+k)%9]+DP[i][j]*((0 if k else 1)+X-Y))%mod for j in range(9): if j!=D[i]%9: DP[i+1][j]=0 print(sum(DP[N]))