#include    <iostream>

using namespace std;

int main() {
    unsigned int pairComb[2001] = {0};
    unsigned long long abcdComb[4001] = {0};

    /* 
     * a+b+c+d=Nとなる(a,b,c,d)の組合せは，N=i+jとなる整数i,jに分割し，
     * i,jそれぞれに対し，a+b=i，c+d=jとなる(a,b)と(c,d)を同時に選ぶのと等しい．
     * すなわち，i,jを決定するのは乗法原理がなりたつ．
     * また，i+jに分割する場合は同時に選べないため，加法原理がなりたつ．
     */
    for(int i = 0; i <= 1000; i++)
        for(int j = 0; j <= 1000; j++)
            pairComb[i+j]++;
    
    for(int i = 0; i <= 2000; i++) {
        for(int j = 0; j <= i; j++) {
            abcdComb[i] += pairComb[j] * pairComb[i-j];
        }
    }
    for(int i = 2001; i <= 4000; i++) {
        for(int j = i - 2000; j <= 2000; j++) {
            abcdComb[i] += pairComb[j] * pairComb[i-j];
        }
    }

    int order;
    while(cin >> order) {
        cout << abcdComb[order] << endl;
    }

    return 0;
}
