#000193

SuperBijeg

Slavko found out that Mirko was digging around in his room again! Slavko is really mad this time and wants to catch Mirko. But this time, Mirko is not even safe in his own house! Since Slavko is a lazy person, he will give up if Mirko runs too far away.


Imagine that Mirko is running away on a plane. Slavko's house is located in the centre, point with coordinates (0,0), and that is actually Mirko's starting position. Slavko will give up if Mirko gets to the point (n, n).


Mirko doesn't want to go back towards Slavko's house. At every moment he moves in one of the two directions: if he is at the point (x,y), he can move to the point (x+1, y) or (x, y+1) - up or right.


Also, Mirko can't get to the point (x, y) where x < y, because he could fall in the holes that Slavko dug on that part of his property.


Being an excellent mathematician, Mirko noticed that there can exist different paths to the point (n,n).


While he is running away, you have to write a program that calculates the number of different paths to the point (n,n).


InputThe first and only line contains one integer n (1 <= n <= 100000).

OutputSingle integer that represents the number of different paths from Slavko's house to point (n,n). As this number can be very big print it with modulo 66666667.


Input:
2
Output:
2


Input:
42
Output:
28709162

Submit solution

Coming later

The grading service will be connected in a later migration step. You can inspect the task and your previous results now.