my @all = [.words for q:to/EOF/.lines];
master g y9_5 5
slave g y9_6 6
master g y5_1 1
slave g y5_2 2
slave g y5_3 3
EOF
my %all = @all.classify({ .[0] });
for @(%all<master>) {
my $y = (.[2] ~~ /^y(\d+)/).[0].Str;
my @slave = %all<slave>.grep({ .[2] ~~ /^y"$y"/ });
print [ .[0], .[1].uc, | .[2..*-2] ].join(" "), " ";
say @(@slave>>.[3]).join(" ");
say .[0..*-2].join(" ") for @slave;
}
Cm15IEBhbGwgPSBbLndvcmRzIGZvciBxOnRvL0VPRi8ubGluZXNdOwptYXN0ZXIgZyB5OV81IDUKc2xhdmUgZyB5OV82IDYKbWFzdGVyIGcgeTVfMSAxCnNsYXZlIGcgeTVfMiAyCnNsYXZlIGcgeTVfMyAzCkVPRgpteSAlYWxsID0gQGFsbC5jbGFzc2lmeSh7IC5bMF0gfSk7Cgpmb3IgQCglYWxsPG1hc3Rlcj4pIHsKICAgIG15ICR5ID0gKC5bMl0gfn4gL155KFxkKykvKS5bMF0uU3RyOwogICAgbXkgQHNsYXZlID0gJWFsbDxzbGF2ZT4uZ3JlcCh7IC5bMl0gfn4gL155IiR5Ii8gfSk7CiAgICBwcmludCBbIC5bMF0sIC5bMV0udWMsIHwgLlsyLi4qLTJdIF0uam9pbigiICIpLCAiICI7CiAgICBzYXkgQChAc2xhdmU+Pi5bM10pLmpvaW4oIiAiKTsKICAgIHNheSAuWzAuLiotMl0uam9pbigiICIpIGZvciBAc2xhdmU7Cn0=