#include <bits/stdc++.h>
int inList(char a[], char b[], int n);
int n, d, t[1005];
char a[1005][25], b[1005][25], A[1005][25], B[1005][25];
int main() {
  int k = 0;
  int i, j;
  scanf("%d %d", &n, &d);
  for (i = 1; i <= n; i++) scanf("%s %s %d", a[i], b[i], &t[i]);
  for (i = 1; i <= n; i++) {
    for (j = i + 1; j <= n; j++) {
      if (!strcmp(b[i], a[j]) && !strcmp(a[i], b[j]) && t[j] - t[i] > 0 &&
          t[j] - t[i] <= d && !inList(a[j], b[j], k)) {
        strcpy(A[k], a[j]);
        strcpy(B[k], b[j]);
        k++;
      }
    }
  }
  printf("%d", k);
  for (i = 0; i < k; i++) printf("\n%s %s", A[i], B[i]);
  return 0;
}
int inList(char user1[], char user2[], int n) {
  int i;
  for (i = 0; i < n; i++) {
    if ((!strcmp(user1, A[i]) && !strcmp(user2, B[i])) ||
        (!strcmp(user1, B[i]) && !strcmp(user2, A[i]))) {
      return 1;
    }
  }
  return 0;
}
