#include using namespace std; #define int long long #define pb push_back #define fi first #define se second #define FOR(i,n) for(int i = 0;i=(s);i--) #define all(v) (v).begin(),(v).end() #define chmin(a,b) a=min((a),(b)) #define chmax(a,b) a=max((a),(b)) #define endl '\n' #define IOS() ios_base::sync_with_stdio(0);cin.tie(0) typedef long long ll; typedef pairpint; typedef vectorvint; typedef vectorvpint; const ll MOD=1000000007,INF=1ll<<60; typedef vectorvvint; int N,M,K; int dp[3030][3030]; int l[3030],r[3030]; signed main() { IOS(); cin>>N>>M>>K; rep(i,0,M){ cin>>l[i]>>r[i]; l[i]--; r[i]--; } dp[0][0]=1; rep(i,0,K){ int s[3030]={}; rep(j,0,N)(s[j+1]+=s[j]+dp[i][j])%=MOD; rep(j,0,M){ (dp[i+1][l[j]]+=s[r[j]+1])%=MOD; if(l[j])(dp[i+1][l[j]]+=-s[l[j]]+MOD)%=MOD; (dp[i+1][r[j]+1]+=-s[r[j]+1]+MOD)%=MOD; if(l[j])(dp[i+1][r[j]+1]+=s[l[j]]+MOD)%=MOD; } rep(j,0,N)(dp[i+1][j+1]+=dp[i+1][j])%=MOD; } int ans=0; (ans+=dp[K][N-1])%=MOD; cout<