import java.util.Arrays;
import java.util.Scanner;
class PairsLessThanK {
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in);
// Read input values
long n = sc.nextLong();
long k = sc.nextLong();
long[] b = new long[(int)n];
for (int i = 0; i < n; i++) {
b[i] = sc.nextLong();
}
long count = 0;
// Sort the array
// Two-pointer approach
for (int i = 0, j = (int)n - 1; i < n; i++) {
long d = b[i] + b[j];
while(d>k && i!=j){
j--;
d = b[i] + b[j];
}
// if we have reached a point where i,j same then we would just be recounting.. so break
// i we want <j
if(i==j){
break;
}
System.
out.
println(i
+ " " + j
); count += (j - i);
}
}
}
aW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKY2xhc3MgUGFpcnNMZXNzVGhhbksgewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIAogICAgICAgIC8vIFJlYWQgaW5wdXQgdmFsdWVzCiAgICAgICAgbG9uZyBuID0gc2MubmV4dExvbmcoKTsKICAgICAgICBsb25nIGsgPSBzYy5uZXh0TG9uZygpOwogICAgICAgIGxvbmdbXSBiID0gbmV3IGxvbmdbKGludCluXTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBiW2ldID0gc2MubmV4dExvbmcoKTsKICAgICAgICB9CiAgICAgICAgbG9uZyBjb3VudCA9IDA7CiAgICAgICAgCiAgICAgICAgLy8gU29ydCB0aGUgYXJyYXkKICAgICAgICBBcnJheXMuc29ydChiKTsKICAgICAgICAKICAgICAgICAvLyBUd28tcG9pbnRlciBhcHByb2FjaAogICAgICAgIGZvciAoaW50IGkgPSAwLCBqID0gKGludCluIC0gMTsgaSA8IG47IGkrKykgewogICAgICAgICAgICBsb25nIGQgPSBiW2ldICsgYltqXTsKICAgICAgICAgICAgd2hpbGUoZD5rICYmIGkhPWopewogICAgICAgICAgICAgICAgai0tOwogICAgICAgICAgICAgICAgZCA9IGJbaV0gKyBiW2pdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGlmIHdlIGhhdmUgcmVhY2hlZCBhIHBvaW50IHdoZXJlIGksaiBzYW1lIHRoZW4gd2Ugd291bGQganVzdCBiZSByZWNvdW50aW5nLi4gc28gYnJlYWsKICAgICAgICAgICAgLy8gaSB3ZSB3YW50IDxqCiAgICAgICAgICAgIGlmKGk9PWopewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiICIgKyBqKTsKICAgICAgICAgICAgY291bnQgKz0gKGogLSBpKTsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvdW50KTsKICAgIH0KfQo=