#include <bits/stdc++.h>
using namespace std;
struct msg {
  string a;
  string b;
  int t;
  int usd;
};
int main() {
  int n, d;
  cin >> n >> d;
  vector<struct msg> v, rs;
  struct msg nw, rlt;
  for (int j = 0; j < n; j++) {
    cin >> nw.a >> nw.b >> nw.t;
    nw.usd = 0;
    v.push_back(nw);
  }
  for (int j = n - 1; j > 0; j--) {
    for (int i = 0; i < v.size(); i++) {
      if (v[i].usd == 0) {
        if (v[j].a == v[i].b && v[j].b == v[i].a && v[j].t - v[i].t <= d &&
            v[j].t - v[i].t > 0) {
          if (v[j].a < v[j].b) {
            rlt.a = v[j].a;
            rlt.b = v[j].b;
          } else {
            rlt.a = v[j].b;
            rlt.b = v[j].a;
          }
          rs.push_back(rlt);
          v[j].usd = 1;
          v[i].usd = 1;
          break;
        }
      }
    }
    if (v[j].usd == 1) {
      for (int i = 0; i < v.size(); i++) {
        if (v[i].usd == 0 && ((v[j].a == v[i].b && v[j].b == v[i].a) ||
                              (v[j].a == v[i].a && v[j].b == v[i].b))) {
          v[i].usd = 1;
        }
      }
    }
  }
  cout << rs.size() << endl;
  for (int i = 0; i < rs.size(); i++) cout << rs[i].a << " " << rs[i].b << endl;
  return 0;
}
