#PARCARD2. Partition function (HARD)

Partition function (HARD)

You need to output the number of distinct ways of representing n as a sum of natural numbers (with order irrelevant) for given integer n.

Input

n, 0 ≤ n ≤ 108

Example

Input:
2013
Output:
6805659785780163657391920602286596663406217911