Герой Аркадий находится на узкой полоске земли, разделенной на *n* зон, пронумерованных от 1 до *n*. Из *i*-й зоны можно пройти лишь в (*i* - 1)-ю зону и в (*i* + 1)-ю зону, если они существуют. При этом между каждой парой соседних зон находятся пограничные врата, которые могут быть разных цветов, цвет врат между *i*-й и (*i* + 1)-й зоной равен *g*<sub class="lower-index">*i*</sub>.

Аркадий может пройти пограничные врата некоторого цвета, только если он перед этим побывал в одном из шатров хранителей ключей этого цвета и взял ключ. В каждой зоне находится ровно один шатер хранителя ключей некоторого цвета, цвет шатра в *i*-й зоне равен *k*<sub class="lower-index">*i*</sub>. После посещения шатра определенного цвета Аркадий может неограниченное число раз проходить через любые врата этого цвета.

На проход через одни врата Аркадий тратит один ход, на посещение шатра и другие перемещения ходы не требуются. За какое минимальное число ходов Аркадий может попасть из зоны *a* в зону *b*, если изначально у него нет никаких ключей?
Первая строка содержит три целых числа *n*, *a*, *b* (2 ≤ *n* ≤ 100 000, 1 ≤ *a*, *b* ≤ *n*, *a* ≠ *b*) — число зон, номер начальной зоны и номер конечной зоны, соответственно.

Вторая строка содержит *n* - 1 целое число *g*<sub class="lower-index">1</sub>, *g*<sub class="lower-index">2</sub>, ..., *g*<sub class="lower-index">*n* - 1</sub> (1 ≤ *g*<sub class="lower-index">*i*</sub> ≤ 100 000), где *g*<sub class="lower-index">*i*</sub> означает цвет пограничных врат между зонами *i* и *i* + 1.

Третья строка содержит *n* целых чисел *k*<sub class="lower-index">1</sub>, *k*<sub class="lower-index">2</sub>, ..., *k*<sub class="lower-index">*n*</sub> (1 ≤ *k*<sub class="lower-index">*i*</sub> ≤ 100 000), где *k*<sub class="lower-index">*i*</sub> означает цвет шатра хранителя ключей в *i*-й зоне.
В первом примере, чтобы попасть из зоны 4 в зону 1, Аркадию нужно сначала взять ключ цвета 1, пройти в зону 3, там взять ключ цвета 2 и пройти обратно в зону 4 и затем в зону 5, взять там ключ цвета 3 и дойти до зоны 1 за четыре хода.

Во втором примере Аркадий может дойти лишь до четвертой зоны, так как шатров хранителей ключей цвета 1 нет совсем.
n, a, b = ((int(s) - 1) for s in input().split())
g = [(int(s) - 1) for s in input().split()]
k = [(int(s) - 1) for s in input().split()]

n += 1

def left_to_go_right(f, t):
    has = [False] * 100000
    needed = [False] * 100000
    needed_count = 0

    for i in range(f, t):
        has[k[i]] = True
        if not has[g[i]]:
            if not needed[g[i]]:
                needed_count += 1
            needed[g[i]] = True

    p = f - 1
    while p >= 0 and needed_count > 0:
        if needed[k[p]]:
            needed_count -= 1
        needed[k[p]] = False
        p -= 1
    p += 1

    if needed_count == 0:
        return p
    else:
        return -1

def right_to_go_left(f, t):
    has = [False] * 100000
    needed = [False] * 100000
    needed_count = 0

    for i in range(f, t, -1):
        has[k[i]] = True
        if not has[g[i - 1]]:
            if not needed[g[i - 1 ]]:
                needed_count += 1
            needed[g[i - 1]] = True

    p = f + 1
    while p < n and needed_count > 0:
        if needed[k[p]]:
            needed_count -= 1
        needed[k[p]] = False
        p += 1
    p -= 1

    if needed_count == 0:
        return p
    else:
        return -1

path = [b]
is_left = b < a

while True:
    path.append((right_to_go_left if is_left else left_to_go_right)(a, path[-1]))
    is_left = not is_left

    if path[-1] == a:
        size = 0
        for i in range(len(path) - 1):
            size += abs(path[i + 1] - path[i])
        print(size)
        break

    if path[-1] == -1 or (len(path) > 2 and path[-1] == path[-3]):
        print(-1)
        break

