// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<set>

using namespace std;

void solve(){
    int n,m;
    // 看见这题的第一眼 哇怎么这么熟悉啊 噢 原来是 之前学的一个函数啊 就是__builtin_popcount 函数 它就是直接求一个数的二进制里面有多少个一
    while(cin>>n){
      m=0;
      while(n){
        n=n&(n-1);
        m++;
      }  // 这样跟快 就是每次都会去除掉n的二进制里的一个1
      cout<<m<<"\n";
    }
    // 但这题还有一个跟快的方法就是 用位运算
     
    //cout<<__builtin_popcount(n)<<"\n"<<__builtin_popcount(m)<<"\n";
   

}

int main(){
    int T=1;
    while(T--){
        solve();
    }
    return 0;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动