import std.stdio;
import std.array;
import std.algorithm;
string[] input = [
"a1=a2", "b1=b2", "b3=b2", "c1=c2", "e1=e2", "a3=a4", "c3=c4", "e1=e3",
"a2=a4", "c3=c1", "b3=a4", "c2=d1", "a4=a5", "d2=c1", "b4=b3", "d3=c3"
];
void main()
{
ulong[string] g;
string[] id;
foreach (ref s; input) {
string[] e = s.split('=');
string a = e[0];
string b = e[1];
bool hasa = !!(a in g);
bool hasb = !!(b in g);
if (!hasa) id ~= a;
if (!hasb) id ~= b;
final switch (hasa << 1 | hasb) {
case 0:
g[b] = g[a] = g.length;
break;
case 1:
g[a] = g[b];
break;
case 2:
g[b] = g[a];
break;
case 3:
ulong i = min(g[a], g[b]);
ulong j = max(g[a], g[b]);
foreach (ref x; g) if (x == j) x = i;
}
}
foreach (i; g.values.sort.uniq) writeln(id.filter!(x => g[x] == i));
}
aW1wb3J0IHN0ZC5zdGRpbzsKaW1wb3J0IHN0ZC5hcnJheTsKaW1wb3J0IHN0ZC5hbGdvcml0aG07CgpzdHJpbmdbXSBpbnB1dCA9IFsKICAgICJhMT1hMiIsICJiMT1iMiIsICJiMz1iMiIsICJjMT1jMiIsICJlMT1lMiIsICJhMz1hNCIsICJjMz1jNCIsICJlMT1lMyIsCiAgICAiYTI9YTQiLCAiYzM9YzEiLCAiYjM9YTQiLCAiYzI9ZDEiLCAiYTQ9YTUiLCAiZDI9YzEiLCAiYjQ9YjMiLCAiZDM9YzMiCl07Cgp2b2lkIG1haW4oKQp7CiAgICB1bG9uZ1tzdHJpbmddIGc7CiAgICBzdHJpbmdbXSBpZDsKCiAgICBmb3JlYWNoIChyZWYgczsgaW5wdXQpIHsKICAgICAgICBzdHJpbmdbXSBlID0gcy5zcGxpdCgnPScpOwogICAgICAgIHN0cmluZyBhID0gZVswXTsKICAgICAgICBzdHJpbmcgYiA9IGVbMV07CgogICAgICAgIGJvb2wgaGFzYSA9ICEhKGEgaW4gZyk7CiAgICAgICAgYm9vbCBoYXNiID0gISEoYiBpbiBnKTsKCiAgICAgICAgaWYgKCFoYXNhKSBpZCB+PSBhOwogICAgICAgIGlmICghaGFzYikgaWQgfj0gYjsKCiAgICAgICAgZmluYWwgc3dpdGNoIChoYXNhIDw8IDEgfCBoYXNiKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGdbYl0gPSBnW2FdID0gZy5sZW5ndGg7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgZ1thXSA9IGdbYl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgZ1tiXSA9IGdbYV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgdWxvbmcgaSA9IG1pbihnW2FdLCBnW2JdKTsKICAgICAgICAgICAgICAgIHVsb25nIGogPSBtYXgoZ1thXSwgZ1tiXSk7CiAgICAgICAgICAgICAgICBmb3JlYWNoIChyZWYgeDsgZykgaWYgKHggPT0gaikgeCA9IGk7CiAgICAgICAgfQogICAgfQoKICAgIGZvcmVhY2ggKGk7IGcudmFsdWVzLnNvcnQudW5pcSkgd3JpdGVsbihpZC5maWx0ZXIhKHggPT4gZ1t4XSA9PSBpKSk7Cn0=
["a1", "a2", "b1", "b2", "b3", "a3", "a4", "a5", "b4"]
["c1", "c2", "c3", "c4", "d1", "d2", "d3"]
["e1", "e2", "e3"]