#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b) {
  return (a ? gcd(b % a, a) : b);
}
long long int modPow(long long int a, long long int b, long long int MOD) {
  long long int x = 1, y = a;
  while (b > 0) {
    if (b % 2 == 1) {
      x = (x * y) % MOD;
    }
    b /= 2;
    y = (y * y) % MOD;
  }
  return x;
}
long long int modInverse(long long int a, long long int p) {
  return modPow(a, p - 2, p);
}
int main() {
  ios_base::sync_with_stdio(false);
  int n, d, i, j, k;
  cin >> n >> d;
  pair<string, string> arr[n + 2];
  set<pair<string, string> > res;
  int t[n + 2];
  for (i = 0; i < n; i++) cin >> arr[i].first >> arr[i].second >> t[i];
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++) {
      if (arr[j].first == arr[i].second && arr[j].second == arr[i].first &&
          t[j] - t[i] <= d && t[j] - t[i] > 0) {
        if (res.find(make_pair(arr[i].second, arr[i].first)) == res.end())
          res.insert(make_pair(arr[i].first, arr[i].second));
      }
    }
  }
  cout << res.size() << endl;
  for (auto i = res.begin(); i != res.end(); i++)
    cout << (*i).first << ' ' << (*i).second << endl;
}
