--- /dev/null
+#!/usr/bin/perl -w
+
+use v5.40;
+
+my %conn;
+while (<>) {
+ my ($x, $y) = /\w+/g;
+ $conn{$x}{$y}++;
+ $conn{$y}{$x}++;
+}
+
+my $count;
+for my $x (keys %conn) {
+ for my $y (keys $conn{$x}->%*) {
+ for my $z (keys $conn{$x}->%*) {
+ next if $z eq $y;
+ next if !$conn{$z}{$y};
+ $count++ if $x =~ /^t/ || $y =~ /^t/ || $z =~ /^t/;
+ }
+ }
+}
+say $count / 6;
--- /dev/null
+#!/usr/bin/perl -w
+
+use v5.40;
+
+my %conn;
+while (<>) {
+ my ($x, $y) = /\w+/g;
+ $conn{$x}{$y}++;
+ $conn{$y}{$x}++;
+}
+
+sub walk {
+ my ($set, @todo) = @_;
+ my @max = @$set;
+ X:
+ while (my $x = shift @todo) {
+ for my $y (@$set) {
+ next X if !$conn{$x}{$y};
+ }
+ my @nset = walk([ @$set, $x ], @todo);
+ @max = @nset
+ if @nset > @max;
+ }
+ return @max;
+}
+say join(',', walk([], sort keys %conn));
+