 #!/usr/bin/perl -w
 use strict;

 my $met = {};

 while( <> ) {
     # day9 group1: i9 b9 b18 g9 g18 g27
   if( my( $day, $group, $rest ) =
     /day(\d+)\s
      group(\d+):\s
      (.*)
     /x ) {
     my @participants = split / /, $rest;

     for my $i ( 0 .. $#participants ) {
       for my $j (
           $i+1 .. $#participants ) {
         my $a = $participants[ $i ];
         my $b = $participants[ $j ];

         if( exists $met->{ $a }->{ $b } or
           exists $met->{ $b }->{ $a } ) {
           die "$day:$group: Whoops, $a ",
               "and $b have met already ",
               "on $met->{ $a }->{ $b }";
         }

         $met->{ $a }->{ $b } =
         $met->{ $b }->{ $a } =
           "$day:$group";
       }
     }
   }
 }