#include // cout, endl, cin #include // string, to_string, stoi #include // vector #include // min, max, swap, sort, reverse, lower_bound, upper_bound #include // pair, make_pair #include // tuple, make_tuple #include // int64_t, int*_t #include // printf #include // map #include // queue, priority_queue #include // set #include // stack #include // deque #include // unordered_map #include // unordered_set #include // bitset #include // isupper, islower, isdigit, toupper, tolower #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") using std::cin; using std::cout; constexpr int mod=1e9+7; int dp[100001]={0}; int main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); int N; cin>>N; dp[0]=1; for(int i=0;i>A; for(int j=i+A;j=mod) dp[j]-=mod; } if(A!=1){ dp[i+1]+=dp[i]; if(dp[i+1]>=mod) dp[i+1]-=mod; } } cout<