#include #include #define int long long #define inf 0x3f3f3f3f3f3f3f3f #define maxn 3234 #define eps 1e-7 #define mod 1000000007 #define Mod 998244353 #define f(i,a,b) for(int i=a;i<=b;i++) #define r(i,a,b) for(int i=a;i>=b;i--) #define fx(i,a,b,x) for(int i=a;i<=b;i+=x) #define rx(i,a,b,x) for(int i=a;i>=b;i-=x) using namespace std; using namespace __gnu_cxx; using namespace __gnu_pbds; int T; int n,m,k,a[maxn],b[maxn],dp[maxn][maxn],x[maxn]; void solve(){ scanf("%lld%lld%lld",&n,&m,&k); f(i,1,m)scanf("%lld%lld",&a[i],&b[i]); dp[0][1]=1; f(i,0,k-1){ f(j,1,n)x[j]=(x[j-1]+dp[i][j])%mod; f(j,0,m){ int tmp=(x[b[j]]-x[a[j]-1]+mod)%mod; dp[i+1][a[j]]+=tmp,dp[i+1][b[j]+1]-=tmp; } f(j,1,n)dp[i+1][j]=(dp[i+1][j]+dp[i+1][j-1])%mod; } printf("%lld\n",(dp[k][n]+mod)%mod); } signed main(){ T=1; // scanf("%lld",&T); while(T--)solve(); return 0; }