from itertools import izip, repeat, count
from operator import itemgetter as i, mod
from functional import partial
print (lambda A, T: lambda f=lambda k, o, g: (v for c in enumerate(xrange(0,
A + 1, k)) for v in g(o + [c])) if T(o) <= A else []: '\n'.join(map(partial(
mod, '%3d. %s'), izip(count(1), map(lambda t: ' '.join(map(partial(mod, '%'
'd%s'), filter(i(0), zip(map(i(0), t), 'pndqhD')))), f(1, [], lambda t: f(5,
t, lambda t: f(10, t, lambda t: f(25, t, lambda t: f(50, t, lambda t: f(100,
t, lambda t: [t] if T(t) == A else [])))))))))))(100, lambda t: sum(map(i(1)
,t)))()