Assign Difficulty : can anyone help me to solve this problem

There are N coding questions and the score for Ith question must be in the range of 1 to N(inclusive). All the coding questions follow one rule that higher the score higher is difficulty level. Now Tom is trying to assign the score to each question in a sorted difficulty order such that 1st question is of least difficulty level and Nth question is of most difficulty level. And it is also possible that more than one question can have equal score.

As a responsible student of class Tom wants that any student who will get more ACCEPTED answers should rank higher. This means that for any value of M, Tom scores of any M questions should be strictly less in comparison to M + 1 questions.

Now Tom is thinking of how many possible ways are there which holds above mentioned condition, so that he can assign score.

Print the answer with mod 1000000007 because it can be very large.

sample case : for N = 3 ans = 7 arrangements = [2 ,3,3],[2 ,2,3],[1,1,1],[1,2,2],[1,3,3],[3,3,3],[2,2,2]