#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> arr(n);
for(int i = 0; i < n; i++) {
cin >> arr[i];
}
int k;
cin >> k;
vector<pair<int, int>> ans;
unordered_map<int, int> mp;
for(int i = 0; i < n; i++) {
int currentElement = arr[i];
if(mp.find(currentElement) != mp.end()) {
int lastIndex = mp[currentElement];
int distance = i - lastIndex;
if(distance <= k) {
ans.push_back({lastIndex, i});
}
}
mp[currentElement] = i;
}
for(const auto &p : ans) {
cout << p.first << " : " << p.second << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICAKICAgIHZlY3RvcjxpbnQ+IGFycihuKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYXJyW2ldOwogICAgfQogICAgCiAgICBpbnQgazsKICAgIGNpbiA+PiBrOwogICAgCiAgICB2ZWN0b3I8cGFpcjxpbnQsIGludD4+IGFuczsKICAgIAogICAgdW5vcmRlcmVkX21hcDxpbnQsIGludD4gbXA7CiAgICAKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpbnQgY3VycmVudEVsZW1lbnQgPSBhcnJbaV07CiAgICAgICAgCiAgICAgICAgaWYobXAuZmluZChjdXJyZW50RWxlbWVudCkgIT0gbXAuZW5kKCkpIHsKICAgICAgICAgICAgaW50IGxhc3RJbmRleCA9IG1wW2N1cnJlbnRFbGVtZW50XTsKICAgICAgICAgICAgaW50IGRpc3RhbmNlID0gaSAtIGxhc3RJbmRleDsgCiAgICAgICAgICAgIAogICAgICAgICAgICBpZihkaXN0YW5jZSA8PSBrKSB7CiAgICAgICAgICAgICAgICBhbnMucHVzaF9iYWNrKHtsYXN0SW5kZXgsIGl9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBtcFtjdXJyZW50RWxlbWVudF0gPSBpOwogICAgfQogICAgCiAgICBmb3IoY29uc3QgYXV0byAmcCA6IGFucykgewogICAgICAgIGNvdXQgPDwgcC5maXJzdCA8PCAiIDogIiA8PCBwLnNlY29uZCA8PCBlbmRsOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==