#include <bits/stdc++.h>
using namespace std;

int getMinOperations(long long n) {
    int count = 0;
    while (n > 0) {
        long long x = ceil(log2((long double)n));
        long long y = floor(log2((long double)n));
        
        long long ans1 = 1LL << x;
        long long ans2 = 1LL << y;
        
        n = min(abs(n - ans1), abs(n - ans2));
        count++;
    }
    return count;
}

int main() {
    long long n;
    if (cin >> n) {
        cout << getMinOperations(n) << endl;
    }
    return 0;
}