#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vl = vector<ll>;
using vvl = vector<vector<ll>>;
using pi = pair<int, int>;
using pl = pair<ll, ll>;
template <typename U>
void print(U arr) {
  for (auto element : arr) {
    cout << element << " ";
  }
  cout << '\n';
}
void setup(string s) {
  freopen((s + ".in").c_str(), "r", stdin);
  freopen((s + ".out").c_str(), "w", stdout);
}
const int M = 1e9 + 7;
const int mxN = 1e5 + 1;
vvi adj(mxN);
vi lvl(mxN, 0), sub(mxN, 0);
int getSize(int i, int p) {
  sub[i] = 1;
  for (auto& e : adj[i]) {
    if (e != p && !lvl[e]) {
      sub[i] += getSize(e, i);
    }
  }
  return sub[i];
}
ll centroid(int i, int p, int n) {
  for (auto& e : adj[i]) {
    if (e != p && !lvl[e] && sub[e] > n / 2) return centroid(e, i, n);
  }
  return i;
}
ll decomp(ll i, ll l) {
  ll cent = centroid(i, -1, getSize(i, -1));
  lvl[cent] = l;
  for (ll j : adj[cent])
    if (!lvl[j]) decomp(j, l + 1);
  return cent;
}
int main(void) {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  for (ll _ = 0; _ < n - 1; _++) {
    int a, b;
    cin >> a >> b;
    adj[a].push_back(b);
    adj[b].push_back(a);
  }
  decomp(1, 1);
  for (ll i = 1; i < n + 1; i++) cout << (char)('A' + lvl[i] - 1) << ' ';
  return 0;
}
