1045 {
1046 unsigned int n;
1047 unsigned int k;
1048 cin >> n >> k;
1049 auto um = unordered_map<unsigned int, unsigned int>();
1050 auto overcrowding = set<unsigned int>();
1051 for(unsigned int i = 0; i < n; i++) {
1052 unsigned int id;
1053 cin >> id;
1054 if(!um.contains(id)) {
1055 um.insert(pair(id, i));
1056 } else if(!overcrowding.contains(id)) {
1057 if(i - um[id] > k) {
1058 um[id] = i;
1059 } else {
1060 overcrowding.insert(id);
1061 }
1062 }
1063 }
1064 if(overcrowding.empty()) {
1065 cout << -1;
1066 } else {
1067 cout << *--overcrowding.end();
1068 }
1069 return 0;
1070 }