#include <bits/stdc++.h>
using namespace std;
char a1[1010][30], a2[1010][30], s1[30], s2[30], al1[1010], al2[1010];
int tot, q;
bool check(int id, char* s, int l) {
  if (l != al2[id]) return false;
  for (int i = 1; i <= l; i++)
    if (a2[id][i] != s[i]) return false;
  return true;
}
int main() {
  scanf("%d", &q);
  for (int i = 1; i <= q; i++) {
    bool ok = true;
    scanf("%s%s", s1 + 1, s2 + 1);
    int l1 = strlen(s1 + 1), l2 = strlen(s2 + 1);
    for (int i = 1; i <= tot; i++) {
      if (check(i, s1, l1)) {
        al2[i] = l2;
        for (int j = 1; j <= l2; j++) {
          a2[i][j] = s2[j];
        }
        ok = false;
        break;
      }
    }
    if (ok) {
      tot++;
      al1[tot] = l1, al2[tot] = l2;
      for (int i = 1; i <= l1; i++) a1[tot][i] = s1[i];
      for (int i = 1; i <= l2; i++) a2[tot][i] = s2[i];
    }
  }
  printf("%d\n", tot);
  for (int i = 1; i <= tot; i++, printf("\n")) {
    for (int j = 1; j <= al1[i]; j++) printf("%c", a1[i][j]);
    printf(" ");
    for (int j = 1; j <= al2[i]; j++) printf("%c", a2[i][j]);
  }
  return 0;
}
