143165576
 1919020031
 1204252996
 210637432
 724264821
 1741
 619489590
 1199537418
 1075765759
 747976826
 638486017
 58438190
 1285316221
 186925426
 1180540990
 833393692
 1818960378
 2000000000
 0
 1309028227
 514714359
 624205168
 1795248373
 643201595
 1304312649

14 3 3 4 5 2 4 4 2 4 6 4 3 4 5 3 5 4 1 5 3 4 5 5 8
#include <bits/stdc++.h>
using namespace std;
int n, Res;
inline int gcd(int x, int y) {
  if (!y) return x;
  return gcd(y, x % y);
}
inline void read(int &x) {
  char ch;
  int N = 1;
  while ((ch = getchar()) && (!((ch >= '0') && (ch <= '9'))) && (!(ch == '-')))
    ;
  if ((ch == '-')) {
    N = -1;
    while ((ch = getchar()) && (!((ch >= '0') && (ch <= '9'))))
      ;
  }
  x = ch - 48;
  while ((ch = getchar()) && (((ch >= '0') && (ch <= '9'))))
    x = x * 10 + ch - 48;
  x *= N;
}
int main() {
  read(n);
  while (n) {
    int p = n % 16;
    if (p == 10) Res += 0;
    if (p == 11) Res += 2;
    if (p == 13) Res += 1;
    if (p == 0) Res += 1;
    if (p == 6) Res += 1;
    if (p == 8) Res += 2;
    if (p == 9) Res += 1;
    n /= 16;
  }
  printf("%d\n", Res);
}
