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, x, ind = 1, ans = 0;
char a[20], h[] = {'0', '1', '2', '3', '4', '5', '6', '7',
                   '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
int main() {
  cin >> x;
  if (x == 0) {
    cout << "1" << endl;
    return 0;
  }
  while (x) {
    a[ind++] = h[(x % 16)];
    x /= 16;
  }
  for (int i = ind - 1; i >= 1; i--) {
    if (a[i] == '0' || a[i] == '4' || a[i] == '6' || a[i] == '9' ||
        a[i] == 'A' || a[i] == 'D')
      ans++;
    if (a[i] == '8' || a[i] == 'B') ans += 2;
  }
  cout << ans << endl;
  return 0;
}
