#include <bits/stdc++.h>

int ri() {
	int n;
	scanf("%d", &n);
	return n;
}


int main() {
	int k = ri();
	int64_t n;
	std::cin >> n;
	std::vector<int64_t> a(k);
	int64_t b[k];
	for (auto &i : a) std::cin >> i;
	for (auto &i : b) std::cin >> i;
	
	if (n < k) {
		printf("%" PRId64 "\n", a[n]);
		return 0;
	}
	
	
	for (int i = 0; i < 10000; i++) {
		int64_t next = -1;
		for (int j = 0; j < k; j++) next = std::max(next, std::min(b[j], a[i + j]));
		a.push_back(next);
	}
	if (n < (int) a.size()) {
		printf("%" PRId64 "\n", a[n]);
		return 0;
	} else {
		int left = (n - (a.size() - k)) % k;
		printf("%" PRId64 "\n", a[a.size() - k + left]);
	}
	
	
	return 0;
}