--- /dev/null
+#!/usr/bin/perl
+
+use v5.30;
+use strict;
+
+use List::Util qw(max);
+
+my %regs;
+my $max;
+while (<>) {
+ chomp;
+ my ($reg, $op, $val, $creg, $cop, $cval) =
+ /^(\w+) (\S\Sc) (-?\d+) if (\w+) (\S+) (-?\d+)/;
+ $regs{$reg} //= 0;
+ $regs{$creg} //= 0;
+ say "$reg $op $val $creg $cop $cval";
+ if ($cop eq '<' && $regs{$creg} < $cval
+ || $cop eq '>' && $regs{$creg} > $cval
+ || $cop eq '==' && $regs{$creg} == $cval
+ || $cop eq '!=' && $regs{$creg} != $cval
+ || $cop eq '<=' && $regs{$creg} <= $cval
+ || $cop eq '>=' && $regs{$creg} >= $cval) {
+ if ($op eq 'inc') {
+ $regs{$reg} += $val;;
+ } else {
+ $regs{$reg} -= $val;
+ }
+ }
+ my $m = max values %regs;
+ $max = $m if !$max || $max < $m;
+}
+
+say $max;
+
+