', $item); $mapings[$line[0]] = $line[1]; $initialMappings[$line[0]] = 0; } for ($step = 1; $step <= 40; $step++) { $after = $initialMappings; foreach ($before as $pair => $count) { $left = $pair[0] . $mapings[$pair]; $right = $mapings[$pair] . $pair[1]; $after[$left] += $count; $after[$right] += $count; } $before = $after; } $letters = []; foreach ($before as $pair => $count) { $left = $pair[0]; if (!isset($letters[$left])) { $letters[$left] = 0; } $letters[$left] += $count; } $letters[substr($template, -1)] += 1; sort($letters); echo array_pop($letters) - array_shift($letters); //2516901104210