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>
int main() {
  int num = 0;
  int a[100000];
  int i = 0;
  int m = 0;
  int yushu;
  char hex[16] = {'0', '1', '2', '3', '4', '5', '6', '7',
                  '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
  scanf("%d", &num);
  if (num == 0)
    puts("1");
  else {
    while (num > 0) {
      yushu = num % 16;
      a[i++] = yushu;
      num = num / 16;
    }
    int z = 0;
    for (i = i - 1; i >= 0; i--) {
      m = a[i];
      if (hex[m] == '0') z++;
      if (hex[m] == '4') z++;
      if (hex[m] == '6') z++;
      if (hex[m] == '8') z += 2;
      if (hex[m] == '9') z++;
      if (hex[m] == 'A') z++;
      if (hex[m] == 'B') z += 2;
      if (hex[m] == 'D') z++;
    }
    printf("%d\n", z);
  }
  return 0;
}
