#include <cstdio>
int a, b, d, N;
int Live[1000003];
int Born[1000003];
int Sum[1000003];
int main() {
scanf("%d %d %d %d", &a, &b, &d, &N);
Born[0] = 1;
Live[0] = 1;
Sum[0] = 1;
for (int i = 1; i <= N; i ++) {
if (i >= a) {
Born[i] = Sum[i - a];
}
if (i >= b) {
Born[i] -= Sum[i - b];
}
Sum[i] = Sum[i - 1] + Born[i];
Live[i] = Live[i - 1] + Born[i];
if (i >= d) {
Live[i] -= Born[i - d];
}
Live[i] = (Live[i] + 1000) % 1000;
Born[i] = (Born[i] + 1000) % 1000;
Sum[i] = (Sum[i] + 1000) % 1000;
}
printf("%d\n", Live[N]);
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KIAppbnQgYSwgYiwgZCwgTjsKIAppbnQgTGl2ZVsxMDAwMDAzXTsKaW50IEJvcm5bMTAwMDAwM107CmludCBTdW1bMTAwMDAwM107CiAKaW50IG1haW4oKSB7CiAgICBzY2FuZigiJWQgJWQgJWQgJWQiLCAmYSwgJmIsICZkLCAmTik7CiAgICAgCiAgICBCb3JuWzBdID0gMTsKICAgIExpdmVbMF0gPSAxOwogICAgU3VtWzBdID0gMTsKICAgICAKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IE47IGkgKyspIHsKICAgICAgICBpZiAoaSA+PSBhKSB7CiAgICAgICAgICAgIEJvcm5baV0gPSBTdW1baSAtIGFdOwogICAgICAgIH0KICAgICAgICBpZiAoaSA+PSBiKSB7CiAgICAgICAgICAgIEJvcm5baV0gLT0gU3VtW2kgLSBiXTsKICAgICAgICB9CiAgICAgICAgIAogICAgICAgIFN1bVtpXSA9IFN1bVtpIC0gMV0gKyBCb3JuW2ldOwogICAgICAgIExpdmVbaV0gPSBMaXZlW2kgLSAxXSArIEJvcm5baV07CiAgICAgICAgCiAgICAgICAgaWYgKGkgPj0gZCkgewogICAgICAgICAgICBMaXZlW2ldIC09IEJvcm5baSAtIGRdOwogICAgICAgIH0KICAgICAgICAgCiAgICAgICAgTGl2ZVtpXSA9IChMaXZlW2ldICsgMTAwMCkgJSAxMDAwOwogICAgICAgIEJvcm5baV0gPSAoQm9ybltpXSArIDEwMDApICUgMTAwMDsKICAgICAgICBTdW1baV0gPSAoU3VtW2ldICsgMTAwMCkgJSAxMDAwOwogICAgfQogICAgCiAgICBwcmludGYoIiVkXG4iLCBMaXZlW05dKTsKICAgICAKICAgIHJldHVybiAwOwp9