fn main [ var lines := list_break_to_lines(read_lazy(h[0])); var seeds_str := list_break(lines[0], ' ')[1 .. ]; var seeds := map(seeds_str, ston); lines := lines[1 .. ]; while len_greater_than(lines, 0) do [ lines := lines[2 .. ]; var mp := infinite(0); while len_greater_than(lines, 0), lines[0] <> "" do [ var rng := map(list_break(lines[0], ' '), ston); mp := mp[ .. rng[1]] + sparse(rng[0] - rng[1], rng[2]) + mp[rng[1] + rng[2] .. ]; lines := lines[1 .. ]; ] seeds := map(seeds, lambda(i : int) [ return i + mp[i]; ]); ] seeds := list_sort(seeds); write(h[1], ntos(seeds[0]) + nl); ]