#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
vector<int> adj[N];
int d[N], ans[N], num, del;
bool mark[N], en[N];
void DFS1(int v, int par) {
  for (int u : adj[v]) {
    if (u != par && !en[u]) {
      DFS1(u, v);
      d[v] += d[u];
    }
  }
  d[v]++;
  return;
}
void DFS2(int v, int par, int trn) {
  bool flag = 1;
  for (int u : adj[v])
    if (u != par && d[u] > num / 2) {
      flag = 0;
      DFS2(u, v, trn);
    }
  if (flag) {
    en[v] = 1;
    del = v;
    ans[v] = trn;
  }
  return;
}
void DFS3(int v) {
  mark[v] = 1;
  d[v] = 0;
  for (int u : adj[v])
    if (!mark[u] && (!en[u] || u == del)) DFS3(u);
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int n, u, v, trn = 0;
  bool flag = 1;
  cin >> n;
  for (int i = 1; i < n; i++) {
    cin >> u >> v;
    adj[--u].push_back(--v);
    adj[v].push_back(u);
  }
  while (flag) {
    fill(mark, mark + n, 0);
    flag = 0;
    for (int i = 0; i < n; i++) {
      if (!mark[i] && !en[i]) {
        DFS1(i, i);
        num = d[i];
        DFS2(i, i, trn);
        DFS3(i);
        flag = 1;
      }
    }
    trn++;
  }
  for (int i = 0; i < n; i++) cout << (char)(ans[i] + 65) << " ";
  cout << endl;
  return 0;
}
