Герой Аркадий находится на узкой полоске земли, разделенной на *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 нет совсем.


def read_input():
    numbers = input().split()
    n = int(numbers[0])
    start = int(numbers[1])
    end = int (numbers[2])
    return (n, start - 1, end - 1)


def read_array():
    numbers = input().split()
    return list(map(int, numbers))

def get_different_lefts(field, borders, keys, pos, dist):
    lefts = []
    i = pos -1
    while i > -1 and borders[i] in keys:
        if field[i] not in keys:
            new_keys = set(keys)
            new_keys.add(field[i])
            lefts.append((i, dist + pos - i, new_keys))
        i -= 1
    return lefts


def get_different_rights(field, borders, keys, pos, dist):
    rights = []
    i = pos + 1
    while i < len(field) and borders[i - 1] in keys:
        if field[i] not in keys:
            new_keys = set(keys)
            new_keys.add(field[i])
            rights.append((i, dist + i - pos, new_keys))
        i += 1
    return rights

_, start, end = read_input()
borders = read_array()
field = read_array()

possible_result = -1

root = [(start, 0, set([field[start]]))]

nodes = root
while len(nodes) > 0:
    children = []

    for node in nodes:
        children.extend(get_different_lefts(field, borders, node[2], node[0], node[1]))
        children.extend(get_different_rights(field, borders, node[2], node[0], node[1]))

    for pos, dist, keys in children:
        if pos == end:
            if possible_result == -1 or possible_result > dist:
                possible_result = dist

    if possible_result > -1:
        children = list(filter(lambda x: x[1] < possible_result, children))

    nodes = children

print(possible_result)

