#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<string> tt[10010][900];
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    string nn;
    int num, sc;
    cin >> nn >> num >> sc;
    tt[num - 1][sc].push_back(nn);
  }
  for (int i = 0; i < m; i++) {
    string a, b;
    a.clear();
    b.clear();
    for (int j = 800; j >= 0; j--) {
      if (tt[i][j].size() == 2 && a.empty()) {
        a = tt[i][j][0];
        b = tt[i][j][1];
        break;
      } else if (tt[i][j].size() > 2 && a.empty()) {
        break;
      } else if (tt[i][j].size() == 1 && a.empty()) {
        a = tt[i][j][0];
      } else if (tt[i][j].size() > 1 && a.size() && b.empty()) {
        break;
      } else if (tt[i][j].size() == 1 && a.size() && b.empty()) {
        b = tt[i][j][0];
        break;
      }
    }
    if (a.size() && b.size()) {
      cout << a << " " << b << '\n';
    } else {
      cout << "?" << '\n';
    }
  }
  return 0;
}
