#include <iostream>
using namespace std;

struct ListNode{
    int m_nKey;
    ListNode* m_pNext;
    ListNode():m_nKey(0),m_pNext(nullptr){};
    ListNode(int x):m_nKey(x),m_pNext(nullptr){};
};

// 之前我的代码还是记住了长度 违背题意  即使能ac
// 快慢指针法


int main() {
    int n, a;
    while (cin >> n) { // 注意 while 处理多个 case
        ListNode* head = new ListNode(); // 作为中间变量了
        ListNode* pre = head; // 固定的头结点
        while(n--)
        {
            cin >> a;
            ListNode* tmp = new ListNode(a);
            head->m_pNext = tmp;
            head = head->m_pNext;
        }
        int k;
        cin >> k;

        // 真正题意应该是快慢指针吧
        ListNode* left = pre;
        ListNode* right = pre;

        for(int i=0; i<k-1; ++i) // 演算下就知道这里走k-1次
        {
            right  = right->m_pNext;
        }

        while(right->m_pNext!=nullptr)
        {
            left = left->m_pNext;
            right = right->m_pNext;
        }

        if(left==nullptr)
        {
            cout<<-1<<endl;
        }
        else
        {
            cout<<left->m_nKey<<endl;
        }


    }
}
// 64 位输出请用 printf("%lld")