#include <bits/stdc++.h>
using namespace std;
const int inf = 1 << 30;
const int N = 100100;
char a[N], b[N];
int n, m, k, p[27];
int Par(int i) { return p[i] = (i == p[i]) ? i : Par(p[i]); }
bool same(int i, int j) { return Par(i) == Par(j); }
int comp[27];
void mrg(int i, int j) {
  if (same(i, j)) return;
  i = Par(i);
  j = Par(j);
  p[i] = p[j];
  comp[i] += comp[j];
}
vector<pair<char, char> > v;
int main() {
  scanf("%d", &n);
  scanf("%s", a);
  scanf("%s", b);
  for (int i = 0; i < 26; i++) {
    p[i] = i;
    comp[i] = 1;
  }
  for (int i = 0; i < n; i++) {
    if (same(b[i] - 'a', a[i] - 'a')) continue;
    mrg(b[i] - 'a', a[i] - 'a');
    v.push_back({a[i], b[i]});
  }
  printf("%d\n", v.size());
  for (auto x : v) printf("%c %c\n", x.first, x.second);
  return 0;
}
