#include <bits/stdc++.h>
int nxt[611111][26], bj[611111][26], i, n, x, y, all, ans[611111], anss, ansb;
char z;
int dfsa(int x, int y, int dep, int tag) {
  if (!x || !y) return x + y;
  int root = ++all;
  ans[dep]++;
  for (int i = 0; i < 26; i++)
    nxt[root][i] = dfsa(nxt[x][i], nxt[y][i], dep, tag);
  return root;
}
void dfs(int x, int dep) {
  all = n;
  int root = 0;
  for (int i = 0; i < 26; i++)
    if (nxt[x][i]) {
      root = dfsa(root, nxt[x][i], dep, x);
    }
  if (root) ans[dep]++;
  for (int i = 0; i < 26; i++)
    if (nxt[x][i]) {
      dfs(nxt[x][i], dep + 1);
    }
}
int main() {
  memset(nxt, 0, sizeof(nxt));
  scanf("%d", &n);
  for (i = 1; i < n; i++) {
    scanf("%d%d %c", &x, &y, &z);
    nxt[x][z - 'a'] = y;
  }
  dfs(1, 1);
  anss = 0;
  for (i = 1; i <= n; i++) {
    if (ans[i] > anss) {
      anss = ans[i];
      ansb = i;
    }
  }
  printf("%d\n%d\n", n - anss, ansb);
}
