#include <bits/stdc++.h>
using namespace std;
long long i, j, k, x, y, z, n, m, msum;
long long p[1000001];
int main() {
  scanf("%d", &n);
  m = n;
  while (n > 0) {
    for (i = 1; i <= n; i *= 2)
      ;
    --i;
    x = (n ^ i);
    for (i = x, j = n; i <= n; ++i, --j) p[i] = j;
    n = x - 1;
  }
  for (i = 0; i <= m; ++i) msum += (i ^ p[i]);
  printf("%I64d\n", msum);
  for (i = 0; i < m; ++i) printf("%I64d ", p[i]);
  printf("%I64d\n", p[m]);
  return 0;
}
