#include <iostream> #include <vector> #include <string> #include <cstring> #include <math.h> #include <cmath> #include <limits.h> #include <map> #include <set> #include <queue> #include <algorithm> #include <functional> #include <stdio.h> using namespace std; long long MOD = 1000000007; long long A; long long f[5] = { 3,5,17,257,65537 }; int func( long long a, int i ) { if ( a > A ) { return 0; } if ( i == 5 ) { return ( a >= 3 ? 1 : 0); } return func( a*f[i], i+1 ) + func( a, i+1 ); } int main() { cin >> A; long long a = 1; int ans = 0; while ( true ) { if ( a > A ) { break; } ans += func( a, 0 ); a *= 2; } cout << ans << endl; return 0; }