#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 998244353;
const int INF = 1e15;
const int mag = 1000000000;
vector <int> ans;
vector <bool> visited;
vector <vector <int> > adj2;
void dfs (int v, int c) {
visited[v]=true;
ans[v]=c;
for (auto u : adj2[v]) {
if (!visited[u]) {
dfs(u, c^1);
}
}
}
void solve() {
int n, m;
cin >> n >> m;
ans = vector <int> (n);
visited = vector <bool> (n);
vector <vector <pair <int, int>> > adj(n);
for (int i = 0; i< n; i++) {
int x, y, w;
cin >> x >> y >> w;
x--;
y--;
adj[x].push_back({y, w});
adj[y].push_back({x, w});
}
int small = -INF;
for (int i = 0; i< n; i++) {
int curi = INF;
for (auto u : adj[i]) {
curi=min(curi, u.second);
}
small=max(small, curi);
}
adj2 = vector <vector <int> > (n);
for (int i = 0; i< n; i++) {
for (auto u: adj[i]) {
if (u.second<=small) {
adj2[i].push_back(u.first);
}
}
}
for (int i = 0; i< n; i++) {
if (!visited[i]) {
dfs(i, 0);
}
}
cout << small << endl;
for (int i = 0; i< n; i++) {
if (ans[i]==0) {
cout << 'B';
} else {
cout << 'D';
}
}
cout << endl;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t=1;
//cin >> t;
while (t--) {
solve();
}
}