// author Masaki Hara (qnighy)
// Public Domain
#include <cstdio>
#include <iostream>
using namespace std;
// for 64-bit environment, but works on 32bit too
template<size_t N> struct roundUp {
// corner case: x=0, x>2^63
static const size_t _N1 = N-1;
static const size_t _N2 = _N1 | (_N1 >> 1);
static const size_t _N3 = _N2 | (_N2 >> 2);
static const size_t _N4 = _N3 | (_N3 >> 4);
static const size_t _N5 = _N4 | (_N4 >> 8);
static const size_t _N6 = _N5 | (_N5 >> 16);
static const size_t _N7 = _N6 | (_N6 >> 32);
static const size_t Value = _N7 + 1;
};
int main() {
cout << roundUp< 1>::Value << endl;
cout << roundUp< 2>::Value << endl;
cout << roundUp< 3>::Value << endl;
cout << roundUp< 4>::Value << endl;
cout << roundUp< 5>::Value << endl;
cout << roundUp< 6>::Value << endl;
cout << roundUp< 7>::Value << endl;
cout << roundUp< 8>::Value << endl;
cout << roundUp< 9>::Value << endl;
cout << roundUp<10>::Value << endl;
return 0;
}