So this one really took me by surprise at the start and had me trying a lot of different stuff to find the best solution.

I ended up coding a little program to print the contents of the sky to a file and looking it up. At some point I realized the output would probably be the smallest output possible and so I made my solution iterate the moving of the lights until the size of the sky was as small as possible.

For the first part of the problem, I just printed out the smallest sky found while iterating and moving the lights. Coding something to recognize the letters would have been a lot more complicated considering I had no idea the shape they used to print them.

For the second part of the problem, I used the same method as for the first part and then returned the amount of iterations that were completed.