#include <iostream>
#include <cmath>
int binomial(int n, int k){
int **c = new int * [n + 1];
for(int i = 0; i <= n; i++)
c[i] = new int [k + 1];
for(int i = 0; i <= n; i++)
for(int j = 0; j <= std::min(i, k); j++)
if(j == 0 || j == i)
c[i][j] = 1;
else
c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
int result = c[n][k];
for (int i = 0; i <= n; i++)
delete[] c[i];
delete[] c;
return result;
}
int main() {
int n = 0;
std::cin >> n;
int bin_digits = floor((log(n) / log(2))) + 1;
int sum = 0;
for (int i = 1; i <= bin_digits; ++i)
{
sum += binomial (bin_digits, i);
}
std::cout << sum;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CgppbnQgYmlub21pYWwoaW50IG4sIGludCBrKXsKCWludCAqKmMgPSBuZXcgaW50ICogW24gKyAxXTsKCWZvcihpbnQgaSA9IDA7IGkgPD0gbjsgaSsrKQoJCWNbaV0gPSBuZXcgaW50IFtrICsgMV07CgoJZm9yKGludCBpID0gMDsgaSA8PSBuOyBpKyspCgkJZm9yKGludCBqID0gMDsgaiA8PSBzdGQ6Om1pbihpLCBrKTsgaisrKQoJCQlpZihqID09IDAgfHwgaiA9PSBpKQoJCQkJY1tpXVtqXSA9IDE7CgkJCWVsc2UKCQkJCWNbaV1bal0gPSBjW2kgLSAxXVtqIC0gMV0gKyBjW2kgLSAxXVtqXTsKCglpbnQgcmVzdWx0ID0gY1tuXVtrXTsKCWZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKykKICAgICAgICBkZWxldGVbXSBjW2ldOwogICAgZGVsZXRlW10gYzsKCXJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKCkgewoJaW50IG4gPSAwOwoJCglzdGQ6OmNpbiA+PiBuOwoJCglpbnQgYmluX2RpZ2l0cyA9IGZsb29yKChsb2cobikgLyBsb2coMikpKSArIDE7CglpbnQgc3VtID0gMDsKCQoJZm9yIChpbnQgaSA9IDE7IGkgPD0gYmluX2RpZ2l0czsgKytpKQoJewoJCXN1bSArPSBiaW5vbWlhbCAoYmluX2RpZ2l0cywgaSk7Cgl9CgkKCXN0ZDo6Y291dCA8PCBzdW07CglyZXR1cm4gMDsKfQ==