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>
const int maxN = (int)1e4 + 7;
const int maxM = (int)1e5 + 7;
const int maxT = (int)1e6 + 7;
using namespace std;
int n, r, dem = 0;
string s;
void cv(int a) {
  while (a > 0) {
    r = a % 16;
    if (r > 9) {
      switch (r) {
        case 10:
          s = "A" + s;
          break;
        case 11:
          s = "B" + s;
          break;
        case 12:
          s = "C" + s;
          break;
        case 13:
          s = "D" + s;
          break;
        case 14:
          s = "E" + s;
          break;
        case 15:
          s = "F" + s;
          break;
      }
    } else
      s = char(r + 48) + s;
    a /= 16;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cin >> n;
  cv(n);
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == '0') dem += 1;
    if (s[i] == '4') dem += 1;
    if (s[i] == '6') dem += 1;
    if (s[i] == '8') dem += 2;
    if (s[i] == '9') dem += 1;
    if (s[i] == 'A') dem += 1;
    if (s[i] == 'B') dem += 2;
    if (s[i] == 'D') dem += 1;
  }
  if (s.empty()) dem++;
  cout << dem;
}
