#include #include using namespace std; const int N = 3010, MOD = 1000000007; int f[N][N], sum[N][N], l[N], r[N]; int main() { int n, m, k; scanf("%d%d%d", &n, &m, &k); for (int i = 1; i <= m; ++i) { scanf("%d%d", &l[i], &r[i]); } f[0][1] = 1; for (int i = 1; i <= n; ++i) { sum[0][i] = 1; } for (int i = 1; i <= k; ++i) { for (int j = 1; j <= m; ++j) { int contrib = (sum[i - 1][r[j]] - sum[i - 1][l[j] - 1] + MOD) % MOD; (f[i][l[j]] += contrib) %= MOD; f[i][r[j] + 1] = (f[i][r[j] + 1] - contrib + MOD) % MOD; } sum[i][1] = f[i][1]; for (int j = 2; j <= n; ++j) { (f[i][j] += f[i][j - 1]) %= MOD; sum[i][j] = (sum[i][j - 1] + f[i][j]) % MOD; } } printf("%d\n", f[k][n]); return 0; }