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

n, x, y = tuple(map(int, input().split(' ')))
doors = list(map(int, input().split(' ')))
keys = list(map(int, input().split(' ')))

if x - y > 0:
	x, y = y, x
	doors.reverse()
	keys.reverse()

def find_key(key, start, keys):
	#print("looking for %s from %s" % (key, start))
	if keys[start] == key:
		return (start, 0, key)
	coords = []
	for i in range(len(keys)):
		if keys[i] == key:
			coords.append(i)
	for i in range(len(coords)):
		delta = coords[i] - start
		if delta < 0:
			delta = delta*(-3)
		coords[i] = coords[i], delta, key
	if len(coords) == 0:
		raise Exception("NO KEY")
	acc = coords[0]
	for x in coords:
		if  x[1] < acc[1]:
			acc = x
	#print("found at %s delta %s key %s" % acc)
	return acc

def merge(*args):
	f = []
	for e in args:
		f += e
	return list(set(f))


def path(a, b, got, ks, ds):
	#print("going %s->%s, got %s" % (a, b, got))
	if a == b:
		return 0, merge(got, [ks[a]])
	if a > b:
		dl = len(ds)
		#print('keke', a, b)
		a, b = dl-a, dl-b
		ds.reverse()
		ks.reverse()

	#print('ab', a, b)
	got = merge(got, [ks[a]])
	#print(ks, a)
	#print(' ', ds)
	sl = list(filter(lambda x: not x in got, ds[a:b] if a < 1 else ds[a:b]))
	#print(sl)
	#d = list(filter(lambda x: not x in got, ds[a:b]))
	d = sl
	d = merge(d)
	way = 0
	curr = a
	#print('D:', d)
	while len(d) != 0:
		#print('D:', d)

		res = []

		for e in d:
			try:
				res.append(find_key(e, curr, ks))
			except:
				print(-1)
				sys.exit(0)
		res = sorted(res, key=lambda x: x[1])

		go2 = res[0]

		np = path(curr, go2[0], got, ks, ds)

		way += np[0]
		curr = go2[0]

		got = merge(got, [ks[curr]], np[1])
		#print('got', got)
		d.pop(d.index(go2[2]))
	way += abs(curr - b)
	#print('returning %s, %s' % (way, got))
	return way, got

try:
	print(path(x, y, [], keys, doors)[0])
except:
	print(-1)
	sys.exit(0)