#include <iostream>
using namespace std;
struct road {
char c;
int u, v;
};
int fa[20002], n, m, k;
road rd[100002];
int gf(int a) {
return fa[a] == a ? a : gf(fa[a]);
}
int bin(int a, int b) {
fa[gf(b)] = gf(a);
}
int main() {
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) {
fa[i] = i;
}
for (int i = 1; i <= m; i++) {
cin >> rd[i].u >> rd[i].v >> rd[i].c;
bin(rd[i].u, rd[i].v);
}
bool fl = false;
for (int i = 1; i <= n; i++) {
if (gf(i) ==i) {
fl = 1;
break;
}
}
if (fl) {
cout << "no solution";
return 0;
}
for (int i = 1; i <= n; i++) {
fa[i] = i;
}
}
没写完的骗分代码,不开o₂过一个点,开了之后会全RE