#include <bits/stdc++.h>   using namespace std;   const int N = 105;   const int inf = 10000000;   int n, k;   int l[N], r[N];   int main() {     scanf( %d%d , &n, &k);     int midx = (k + 1) / 2, midy = (k + 1) / 2;     for (int i = 0; i < n; i++) {       int m, ans = inf, x, y1, y2;       scanf( %d , &m);       for (int row = 1; row <= k; row++) {         if (l[row] == 0 && r[row] == 0) {           for (int a = 1; a + m - 1 <= k; a++) {             int tot = 0, b = a + m - 1;             for (int col = a; col <= b; col++) {               tot += abs(row - midx) + abs(col - midy);             }             if (tot < ans) ans = tot, x = row, y1 = a, y2 = b;           }         } else {           if (l[row] > m) {             int tot = 0, a = l[row] - m, b = l[row] - 1;             for (int col = a; col <= b; col++) {               tot += abs(row - midx) + abs(col - midy);             }             if (tot < ans) ans = tot, x = row, y1 = a, y2 = b;           }           if (r[row] + m <= k) {             int tot = 0, a = r[row] + 1, b = r[row] + m;             for (int col = a; col <= b; col++)               tot += abs(row - midx) + abs(col - midy);             if (tot < ans) ans = tot, x = row, y1 = a, y2 = b;           }         }       }       if (ans == inf)         puts( -1 );       else {         printf( %d %d %d n , x, y1, y2);         if (r[x] == 0 && l[x] == 0)           l[x] = y1, r[x] = y2;         else           l[x] = min(l[x], y1), r[x] = max(r[x], y2);       }     }     return 0;   }   