prob 50 solved with heavy brute force
prob 54 optimizations
prob 51 initial code
prob 54 solved with really good number of classes