#include <vector>
class GoUpstairs {
    vector<int> ways = {1,1,2,4};
    const int mod = 1000000007;
public:
    int countWays(int n) {
        // write code here
        if(n<ways.size()) return ways[n];
        for(int j = ways.size();j<=n;j++)
        {
            ways.emplace_back(((ways[j-1]+ways[j-2])%mod + ways[j-3])%mod);

        }
        return ways[n];
    }
};