#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
const int mod=1e9+7;
int n,m,k,f[N*2][N][2],sum[N],ans=0;
int main() {
    cin>>n>>m>>k;m--;k--;
    int up=(n+m)/k;
    f[0][0][0]=1;
    for(int i=1;i<=up;i++) {
        for(int j=0;j<=n;j++) sum[j]=(((j-1>=0?sum[j-1]:0)+f[i-1][j][0])%mod+f[i-1][j][1])%mod;
        for(int j=0;j<=n;j++) {
            f[i][j][0]=(f[i-1][j][0]+f[i-1][j][1])%mod;
            int t=max(0,j-k);
            f[i][j][1]=(sum[j-1]-(t-1>=0?sum[t-1]:0)+mod)%mod;
        }
        for(int j=0;j<=n;j++) if((j%k==n%k)&&((i*k-j)%k==m%k)&&i*k-j<=m) ans=(ans+f[i][j][1])%mod;
    }
    printf("%d\n",ans);
    return 0;
}
//orzgzy
//鸡贼明年进队超稳
