from itertools import accumulate n, m, k = map(int, input().split()) mod = 10**9+7 t = [tuple(map(int, input().split())) for _ in range(m)] #dp[x] #i回目の移動でxにいる場合の数 dp = [0]*(n+1) dp[1] = 1 for i in range(k): tmp = [0]*(n+2) dpac = list(accumulate(dp)) for l, r in t: tmp[l] += dpac[r] - dpac[l-1] tmp[r+1] -= dpac[r] - dpac[l-1] dp = list(map(lambda x: x%mod, accumulate(tmp))) print(dp[-2])