POJ 1348: next permutation
Cousera: Functional Programming: streams
POJ 1349: BigInteger