#include<bits/stdc++.h>
using namespace std;
const int N = 4005, P = 1e9 + 7;
int n, m, k, s, f[N][N], ans;

int main () {
	scanf("%d%d%d", &n, &m, &k);
	s = (n + m - 1) / (k - 1);
	f[0][0] = 1;
	for (int i = 1; i <= s; ++i) {
		for (int j = 0, sum = 0; j <= m; ++j) {
			sum = (sum + f[i - 1][j]) % P;
			if (i > 1) { if (j >= k) sum = (sum - f[i - 1][j - k] + P) % P; }
			else { if (j >= k - 1) sum = (sum - f[i - 1][j - k + 1]) % P; }
			f[i][j] = sum;
//			if ((m - j) % (k - 1) == 0 && (n + j) % (k - 1) == 0 && (i - 1) * (k - 1) + k - j <= n) ans = (ans + f[i][j] - f[i - 1][j]) % P;
			if (n + j - (k - 1) * i < 0 || j >= m) { f[i][j] = 0;  }
			if ((m - j - 1) % (k - 1) == 0 && (n + j) % (k - 1) == 0) ans = (ans + f[i][j]) % P;
		}
	}
	printf("%d\n", ans);
	return 0;
}