#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const long long MOD = 1000000007;
int n, p[1 << 21];
int main() {
  scanf("%d", &n);
  long long s = 0;
  int t = 1;
  while (t <= n) t <<= 1;
  t--;
  memset(p, -1, sizeof(p));
  for (int i = n; i >= 0; --i) {
    if (p[i] != -1) continue;
    while ((t ^ i) > n || p[t ^ i] != -1) t >>= 1;
    s += 2 * t;
    p[i] = t ^ i;
    p[t ^ i] = i;
  }
  cout << s << endl;
  for (int i = 0; i <= n; ++i) printf("%d ", p[i]);
  return 0;
}
