import numpy as np c=np.array([[0]*64]*64,dtype=object);c[0,0]=1;p=0;s="" for i in bin(int(input()))[2:]: c[:,1:]=c[:,:-1];c[1:,0]+=c[:-1,0];c[1:,2:]+=c[:-1,2:] if i=="0":c[p]-=[0,1,*map(int,s.zfill(62)[::-1])];c[p+1][0]-=1 else:p+=1 s+=i c*=c+1;c//=2;c[:,1:]*=2**np.arange(63) print(c[:,1:].sum()%998244353)