#include <bits/stdc++.h>
using namespace std;
int n, f[100005], v[100005 + 100005], o[100005 + 100005], p, s[100005], c, no;
char a[100005];
bool r[100005];
void add(int a, int b) {
  v[++p] = b;
  o[p] = f[a];
  f[a] = p;
}
void dfs(int x, int p) {
  s[x] = 1;
  no++;
  for (int i = (f[x]); i; i = o[i])
    if (v[i] != p && !r[v[i]]) {
      dfs(v[i], x);
      s[x] += s[v[i]];
    }
}
void choose(int x, int p, int t) {
  int m = t - s[x];
  for (int i = (f[x]); i; i = o[i])
    if (v[i] != p && !r[v[i]]) {
      choose(v[i], x, t);
      m = max(m, s[v[i]]);
    }
  if (m + m <= no) c = x;
}
void root(int x, char g) {
  no = 0;
  dfs(x, -1);
  choose(x, -1, s[x]);
  a[c] = g;
  r[c] = 1;
  for (int i = (f[c]); i; i = o[i])
    if (!r[v[i]]) root(v[i], g + 1);
}
int main() {
  scanf("%d", &n);
  for (int i = (1); i < (n); i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    add(a, b);
    add(b, a);
  }
  root(1, 'A');
  for (int i = (1); i <= (n); i++) printf("%c%c", a[i], i == n ? '\n' : ' ');
  scanf("\n");
}
