#include <bits/stdc++.h>
using namespace std;
int p[1111111];
int u[1111111];
int main() {
  int n;
  scanf("%d", &n);
  ++n;
  int z = 1;
  while (z < n) z *= 2;
  for (int i = n - 1; i >= 0; --i) {
    int w = i ^ (z - 1);
    while (w >= n || u[w]) z /= 2, w = i ^ (z - 1);
    u[w] = 1;
    p[i] = w;
  }
  long long s = 0;
  for (int i = 0; i < n; ++i) s += i ^ p[i];
  cout << s << endl;
  for (int i = 0; i < n; ++i) printf("%d ", p[i]);
  puts("");
  return 0;
}
