function get_solution($n, $runs)
{
for ($a = 0; $a < $runs; $a++) {
for ($i = 0; $i < $n->count(); $i++) {
$v = $n["_$i"];
$p = $n->keys()->search("_$i");
$v = $n->splice($p, 1)->first();
$p += $v;
if ($p <= 0) {
$p = $n->count() + $p % $n->count();
}
elseif ($p > $n->count()) {
$p = $p % $n->count();
}
$n = $n->insert(["_$i" => $v], $p);
}
}
$n = $n->values();
$start = $n->keep(0)->keys()->first();
return set([
$n[($start + 1000) % $n->count()],
$n[($start + 2000) % $n->count()],
$n[($start + 3000) % $n->count()],
])->sum();
}
$n = $input->lines->mapAssoc(fn ($i, $n) => ["_$i" => (int) (string) $n]);
$solution_1 = 10707;
$solution_2 = 2488332343098;