N = int(input()) def a(k): return 4**k + 2**(k-1) * (2 ** k - 1) n = 0 while not (2**n <= N < 2**(n+1)): n+=1 m = 998244353 ans = N*(N+1)/2 - 2**(n-1)*(2**n-1) ans %= m n-=1 while n >= 0: ans *= 2**(n) % m ans %= m ans += a(n) % m ans %= m n -= 1 print(int(ans))