#!/usr/bin/env python3
from collections import defaultdict
import random
random.seed(0)

MOD = 10**9+7

n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

cur = defaultdict(int)
chain = {}  # (first, last, cnt)
for i in range(0, n*2):
    hashable_cur = str(sorted(cur.items()))
    if hashable_cur in chain:
        (first, last, cnt) = chain[hashable_cur]
        if first + n > i:            
            chain[hashable_cur] = (first, i, cnt+1)
    else:
        chain[hashable_cur] = (i, i, 1)
    
    cura = a[i%n]
    curb = b[i%n]
    cur[cura] += 1
    cur[curb] -= 1
    if cur[cura] == 0:
        del cur[cura]
    if cur[curb] == 0:
        del cur[curb]

total = 0
for (first, last, cnt) in chain.values():
    total += 2**cnt - cnt - 1

print(total % MOD)
