function solve($blocks) {
$states = [];
while (!in_array($blocks, $states)) {
$states[] = $blocks;
$max = max($blocks);
$start = array_search($max, $blocks);
$blocks[$start] = 0;
for ($i = 0; $i < $max; $i++) {
$blocks[($start + $i + 1) % count($blocks)]++;
}
}
return $states;
}
// ==================================================
// > SOLUTIONS
// ==================================================
$states = solve((array) $input->numbers());
$solution_1 = count($states);
$solution_2 = count(solve(end($states)));