--- /dev/null
+#!/usr/bin/perl -w
+
+use v5.42;
+
+my @ranges;
+while (<>) {
+ last if /^$/;
+ push @ranges, [ /\d+/g ];
+}
+
+my $sum;
+while (<>) {
+ for my $r (@ranges) {
+ next if $_ < $r->[0] || $_ > $r->[1];
+ $sum++;
+ last;
+ }
+}
+say $sum;
--- /dev/null
+#!/usr/bin/perl -w
+
+use v5.42;
+use List::Util qw(max);
+
+my @ranges;
+while (<>) {
+ last if /^$/;
+ push @ranges, [ /\d+/g ];
+}
+
+my $sum;
+my $prev;
+for my $r (sort { $a->[0] <=> $b->[0] } @ranges) {
+ $prev //= $r->[0];
+ next if $r->[1] < $prev;
+ $sum += $r->[1] - max($r->[0], $prev) + 1;
+ $prev = max($r->[1]+1, $prev);
+}
+
+say $sum;