#include <bits/stdc++.h>
using namespace std;

bool fun(vector<int> nums, int k) {
    unordered_map<int, int> mpp;

    for (int i = 0; i < nums.size(); i++) {

        if (mpp.find(nums[i]) != mpp.end()) {
            int lastIndex = mpp[nums[i]];
            int distance = i - lastIndex;

            if (distance <= k)
                return true;
        }

        mpp[nums[i]] = i;
    }

    return false;
}

int main() {
    vector<int> nums = {1, 2, 2, 1, 2, 3};
    int k = 2;

    cout << fun(nums, k);

    return 0;
}