/*
*/
//#pragma comment(linker, "/STACK:16777216")
#include <fstream>
#include <iostream>
#include <string>
#include <complex>
#include <math.h>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stdio.h>
#include <stack>
#include <algorithm>
#include <list>
#include <ctime>
#include <memory.h>
#include <ctime>
#define y0 sdkfaslhagaklsldk
#define y1 aasdfasdfasdf
#define yn askfhwqriuperikldjk
#define j1 assdgsdgasghsf
#define tm sdfjahlfasfh
#define lr asgasgash
#define eps 1e-9
//#define M_PI 3.141592653589793
#define bs 1000000007
#define bsize 256
#define MAXN 1000
using namespace std;
int n;
int get(int x)
{
int s=0;
while (x)
{
s+=x%2;
x/=2;
}
return s;
}
void show(int x)
{
vector<int> v;
while (x)
{
v.push_back(x%2);
x/=2;
}
for (int i=v.size()-1;i+1;--i)
cout<<v[i];
cout<<endl;
}
int main(){
//freopen("newlines.in","r",stdin);
//freopen("newlines.out","w",stdout);
//freopen("F:/in.txt","r",stdin);
//freopen("F:/output.txt","w",stdout);
ios_base::sync_with_stdio(0);
//cin.tie(0);
int res=0;
//cin>>n;
n=45;
show(n);
for (int i=1;i<n;i++)
res+=get(i);
cout<<res<<endl;
//cin.get();cin.get();
return 0;}
LyoKKi8KIAovLyNwcmFnbWEgY29tbWVudChsaW5rZXIsICIvU1RBQ0s6MTY3NzcyMTYiKQojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y29tcGxleD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8bWVtb3J5Lmg+CiNpbmNsdWRlIDxjdGltZT4gCiAKI2RlZmluZSB5MCBzZGtmYXNsaGFnYWtsc2xkawojZGVmaW5lIHkxIGFhc2RmYXNkZmFzZGYKI2RlZmluZSB5biBhc2tmaHdxcml1cGVyaWtsZGprCiNkZWZpbmUgajEgYXNzZGdzZGdhc2doc2YKI2RlZmluZSB0bSBzZGZqYWhsZmFzZmgKI2RlZmluZSBsciBhc2dhc2dhc2gKIAojZGVmaW5lIGVwcyAxZS05Ci8vI2RlZmluZSBNX1BJIDMuMTQxNTkyNjUzNTg5NzkzCiNkZWZpbmUgYnMgMTAwMDAwMDAwNwojZGVmaW5lIGJzaXplIDI1NgojZGVmaW5lIE1BWE4gMTAwMAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBuOwppbnQgZ2V0KGludCB4KQp7CglpbnQgcz0wOwoJd2hpbGUgKHgpCgl7CgkJcys9eCUyOwoJCXgvPTI7Cgl9CglyZXR1cm4gczsKfQoKdm9pZCBzaG93KGludCB4KQp7Cgl2ZWN0b3I8aW50PiB2OwoJd2hpbGUgKHgpCgl7CgkJdi5wdXNoX2JhY2soeCUyKTsKCQl4Lz0yOwoJfQoJZm9yIChpbnQgaT12LnNpemUoKS0xO2krMTstLWkpCgkJY291dDw8dltpXTsKCWNvdXQ8PGVuZGw7Cn0KaW50IG1haW4oKXsKLy9mcmVvcGVuKCJuZXdsaW5lcy5pbiIsInIiLHN0ZGluKTsKLy9mcmVvcGVuKCJuZXdsaW5lcy5vdXQiLCJ3IixzdGRvdXQpOwovL2ZyZW9wZW4oIkY6L2luLnR4dCIsInIiLHN0ZGluKTsKLy9mcmVvcGVuKCJGOi9vdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKLy9jaW4udGllKDApOwoKaW50IHJlcz0wOwoKLy9jaW4+Pm47Cm49NDU7CgpzaG93KG4pOwpmb3IgKGludCBpPTE7aTxuO2krKykKCXJlcys9Z2V0KGkpOwpjb3V0PDxyZXM8PGVuZGw7CgovL2Npbi5nZXQoKTtjaW4uZ2V0KCk7CnJldHVybiAwO30=