#include #define INF 1e9 #define LINF (1LL << 63 - 1) #define rep(i,n)for(int i=0;(i)<(int)(n);i++) #define REP(i,a,b)for(int i=(int)(a);(i)<=(int)(b);i++) #define ALL(a) (a).begin(),(a).end() // #define chmax(a, b) a = max(a, b) // #define chmin(a, b) a = min(a, b) #define pb push_back #define fi first #define se second #define sz(x) ((int)x.size()) using namespace std; //using namespace atcoder; using ld = long double; using ll = long long; using P = pair; template bool chmin(T& a, const T& b) { if(a > b){ a = b; return 1;} return 0; } template bool chmax(T& a, const T& b) { if(a < b){ a = b; return 1;} return 0; } const ll ZER = 0; const ll MOD = 1e9 + 7; int main(){ int n; cin >> n; int a = n; int b = n, c; int cnt = 0; int tmp = b; while(tmp){ if(tmp % 2 == 1 && cnt != 0){ cout << cnt << endl; c = (1 << cnt); b = (b ^ c); break; } cnt++; tmp /= 2; } cout << a << " " << b << " " << c << endl; // cout << (a | b) << " "<< (b | c) << " " << (c | a) << endl; // cout << ((a ^ b) ^ c) << endl; }