#include <bits/stdc++.h>
using namespace std;
int n, q, br;
int d[100100], cenpar[100100], cendep[100100], ans[100100];
bool ch[100100];
vector<int> v[100100];
void dfs(int s, int prev) {
  br++;
  d[s] = 1;
  for (auto i : v[s]) {
    if (ch[i] or i == prev) continue;
    dfs(i, s);
    d[s] += d[i];
  }
}
int getcen(int s, int prev) {
  for (auto i : v[s]) {
    if (i == prev or ch[i]) continue;
    if (d[i] > br / 2) return getcen(i, s);
  }
  return s;
}
int decompose(int s, int dep, int prev) {
  br = 0;
  dfs(s, -1);
  s = getcen(s, -1);
  ch[s] = true;
  cendep[s] = dep;
  cenpar[s] = prev;
  for (auto i : v[s]) {
    if (ch[i]) continue;
    int k = decompose(i, dep + 1, s);
  }
  return s;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  for (int i = 0; i < 100100; i++) ans[i] = 1e9;
  cin >> n;
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    cin >> a >> b;
    v[a].push_back(b);
    v[b].push_back(a);
  }
  decompose(1, 0, -1);
  for (int i = 1; i <= n; i++) {
    cout << (char)(cendep[i] + 'A') << " ";
  }
  return 0;
}
