#include using namespace std; long N,dp[66][2][2][4],mod=1e9+7; main() { cin>>N; dp[63][0][0][0]=1; for(int i=63;i--;)for(int j=0;j<2;j++) for(int k=0;k<2;k++)for(int l=0;l<4;l++) { int lim=j?1:N>>i&1; for(int a=0;a<=lim;a++) { int blim=k?1:a; for(int b=0;b<=blim;b++) { int nl=l; if((nl&1)==0) { if((a&b)<(a^b))nl|=1; else if((a&b)>(a^b))continue; } if((nl&2)==0) { if((a^b)<(a|b))nl|=2; else if((a^b)>(a|b))continue; } (dp[i][j||a