#include <bits/stdc++.h>
using namespace std;
template <class T, class S>
inline bool minup(T& m, S x) {
  return m > (T)x ? (m = (T)x, true) : false;
}
template <class T, class S>
inline bool maxup(T& m, S x) {
  return m < (T)x ? (m = (T)x, true) : false;
}
const int INF = 1000000000;
const long long int MOD = 1000000007LL;
const double EPS = 1E-12;
const int MAX_N = 4000;
const int A = 1000;
int n;
vector<int> ra, la;
int main() {
  for (int(i) = (0); (i) <= (A); (i)++)
    for (int(j) = (0); (j) <= (A); (j)++) ra.push_back(i + j);
  for (int(i) = (0); (i) <= (A); (i)++)
    for (int(j) = (0); (j) <= (A); (j)++) la.push_back(i + j);
  sort((la).begin(), (la).end());
  while (cin >> n) {
    int res = 0;
    for (__typeof((ra).begin()) v = (ra).begin(); v != (ra).end(); v++)
      res += upper_bound((la).begin(), (la).end(), n - (*v)) -
             lower_bound((la).begin(), (la).end(), n - (*v));
    cout << res << endl;
  }
  return 0;
}
