Java
import java.io.*;
import java.util.*;
public class Main {
    static final int INF = 0x3f3f3f3f;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        int n = Integer.parseInt(line[0]);  // 总人数
        int k = Integer.parseInt(line[1]);  // 等待
        int S = Integer.parseInt(line[2]);  // Start
        Set<String> set = new HashSet<>();
        boolean flag = false;
        int cnt = INF;
        for (int i = 1; i <= n; i++) {
            String s = br.readLine();
            if (i == S) {
                System.out.println(s);
                flag = true;
                set.add(s);
                cnt = 0;
                continue;
            }
            if (!set.contains(s)) {
                cnt++;
            }
            if (cnt == k) {
                System.out.println(s);
                set.add(s);
                cnt = 0;
            }
        }
        if (!flag) {
            System.out.println("Keep going...");
        }
        br.close();
    }
}C++
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_set>
using namespace std;
const int INF = 0x3f3f3f3f;
int n, k, S;    // 总人数、等待、Start
unordered_set <string> st;
bool flag = false;
int main() {
    scanf("%d%d%d", &n, &k, &S);
    string s;
    int cnt = INF;
    for (int i = 1; i <= n; ++i) {
        cin >> s;
        if (i == S) {
            cout << s << endl;
            flag = true;
            st.insert(s);
            cnt = 0;
            continue;
        }
        if (!st.count(s)) cnt++;
        if (cnt == k) {
            cout << s << endl;
            st.insert(s);
            cnt = 0;
        }
    }
    if (!flag) printf("Keep going...\n");
    return 0;
}