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

zones_arr = zones.split(" ")
colors_arr = colors.split(" ")
color_shat_arr = color_shat.split(" ")


keys = []


# Вычитаем, потому что там дано по элементам, а у нас-то тут в массивах от нуля.
from_point = int(zones_arr[1]) - 1
dest_point = int(zones_arr[2]) - 1

count = 0

# Если from > dest, то нам нужно идти по массиву обратно.
# Если нет - то прибавлять.

n_act = 0
if from_point > dest_point:
    n_act = -1

else:
    n_act = 1


def key_founder(from_val, to_val, needed_key):

    rn_act = -1 * n_act
    #print("RN_ACT: " + str(rn_act))

    for h in range(from_val, to_val, rn_act):

        #print("\n")
        #print("H: " + str(h))
        ##print("RS_LOCATION: " + str(from_val) + " " + str(to_val) + " " + str(rn_act))
        #print("KEYS: " + str(keys))

        current_key = int(color_shat_arr[h])
        keys.append(current_key)

        if current_key == needed_key:
            #print("NEEDED: " + str(needed_key))
            return (h - from_val) * 2


        # Мы идем против движения
        next_point = h + rn_act
        key_of_next_point = 0


        # Нияз, иди нахуй со своими задачами, заебал так сложно делать

        # Там хуй в том, что у нас между участками ворота. Следственно, их на единичку меньше, чем участков.
        # Нам нужно взять индекс ближнего к цели. Для этого нужно определить, че какая ближе.

        if rn_act == 1:
            key_of_next_point = int(colors_arr[h])

        else:
            key_of_next_point = int(colors_arr[next_point])

        if key_of_next_point not in keys:
                return -1

    return -1


for n in range(from_point, dest_point, n_act):
    #print("\n")
    #print("LOCATION: " + str(n) + " " + str(from_point) + " " + str(dest_point))
    #print("STEPS COUNT: " + str(count))
    #print("KEYS:" + str(keys))

    # Чел заходит в шатер за ключом в точке своего пребывания.

    keys.append(int(color_shat_arr[n]))


    next_point = n + n_act
    key_of_next_point = 0


    # Там хуй в том, что у нас между участками ворота. Следственно, их на единичку меньше, чем участков.
    # Нам нужно взять индекс ближнего к цели. Для этого нужно определить, че какая ближе.

    if n_act == 1:
        key_of_next_point = int(colors_arr[next_point])

    else:
        key_of_next_point = int(colors_arr[n - 1])

    #print("KONP: " + str(key_of_next_point))

    # Если в ключах есть ключ от ворот, то тупо премся в следующую
    # Если нет - нам придется возвращаться назад в поисках ключа

    #print(key_of_next_point)

    if key_of_next_point in keys:
       count += 1

    else:
        cc = 0

        if n_act == 1:
            cc = key_founder(n, 0 - 1, key_of_next_point)

        else:
            #print(str(n) + " " + str(color_shat_arr.__len__()))
            cc = key_founder(n, color_shat_arr.__len__(), key_of_next_point)

        if cc == -1:
            count = -1
            break

        else:
            count += cc - 1

print(count)