#include <iostream>
using namespace std;

template<int N>
struct lookup_table {
    int table[N];
 
    constexpr int& operator[](size_t i) {
        return table[i];
    }
 
    constexpr const int& operator[](size_t i) const {
        return table[i];
    }
};

constexpr int bit_count(int i) { 
	int bits = 0; 
	while (i) { i &= i-1; ++bits; } 
	return bits;
}

template<int N> 
constexpr lookup_table<N> generate() {
    lookup_table<N> table = {};
 
    for (int i = 0; i < N; ++i)
        table[i] = bit_count(i);
 
    return table;
}

template<int I> struct Check {
    Check() {
        std::cout <<  I << "\n";
    }
};

constexpr auto table = generate<65536>();

int main() {
	// checks that they are evaluated at compile-time 
	Check<table[5]>();
	Check<table[65535]>();
	
	// test
	int i;
	while (cin >> i) {
		cout << table[i] << ' ';
	}

	return 0;
}