#include <bits/stdc++.h>
using namespace std;
map<pair<int, int>, bool> mp;
bool check(int x, int y, int z) {
  if (y < x) swap(x, y);
  if (z < y) swap(z, y);
  if (y < x) swap(x, y);
  if (x + y > z && z > y && mp.count({x, y}) == 0) {
    mp[{x, y}] = 1;
    return 1;
  } else
    return 0;
}
int main() {
  int n;
  cin >> n;
  long long ans = 0;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) {
      if ((i ^ j) <= n && check(i, j, (i ^ j))) ans++;
    }
  }
  cout << ans;
}
