from contextlib import contextmanager
import sys
import os
sys.path.insert(1, os.path.abspath('../../'))
from python_tools.aoc_utils import *

import collections as C

G = C.defaultdict(lambda: 0)

def blink_rocks(r):
    if r == 0:
        return [1]
    elif len(str(r)) % 2 == 0:
        l = int(len(str(r)) / 2)
        return [int(str(r)[:l]), int(str(r)[l:])]
    else:
        return [r*2024]


def solve(stones, num):
    G.clear()
    for i in stones:
        G[i] += 1

    for i in range(num):
        nx = []
        g = G.copy()
        G.clear()
        for j in g:
            result = blink_rocks(j)
            for k in result:
                G[k]+=g[j]
    ans = 0
    for i in G:
        ans += G[i]
    print(f"Stones after {num} blinks: {ans}")

def main():
    f = open("input.txt", "r")
    contents = list(map(int, f.read().strip().split()))
    solve(contents, 25)
    solve(contents, 75)

if __name__ == "__main__":
    main()