#include <bits/stdc++.h>
using namespace std;
long long int imod(long long int x, long long int y) {
  long long int v = x % y;
  if ((x >= 0) == (y >= 0))
    return v;
  else
    return v == 0 ? 0 : v + y;
}
long long int divFloor(long long int x, long long int y) {
  if (x > 0) {
    if (y > 0)
      return x / y;
    else
      return (x - y - 1) / y;
  } else {
    if (y > 0)
      return (x - y + 1) / y;
    else
      return x / y;
  }
}
long long int divCeil(long long int x, long long int y) {
  if (x > 0) {
    if (y > 0)
      return (x + y - 1) / y;
    else
      return x / y;
  } else {
    if (y > 0)
      return x / y;
    else
      return (x + y + 1) / y;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout << setprecision(20);
  long long int n;
  cin >> n;
  long long int ans = 0;
  long long int cost = 1;
  while (n > 1) {
    ans += cost * (n / 2);
    n = (n / 2) + (n % 2);
    cost *= 2;
  }
  cout << ans << endl;
  return 0;
}
