#include <iostream>
#include <array>
using namespace std;
constexpr int N = 1e1;
constexpr int f(int x) { return x*2; }
typedef array<int, N> A;
template<int... i> struct F { static constexpr A f() { return A{{ ::f(i)... }}; } };
template<class A, class B> struct C {};
template<int... i, int... j> struct C<F<i...>, F<j...>> : F<i..., (sizeof...(i)+j)...> { using T = F<i..., (sizeof...(i)+j)...>; };
template<int n> struct S : C<typename S<n/2>::T, typename S<n-n/2>::T> {};
template<> struct S<1> : F<0> { using T = F<0>; };
constexpr auto X = S<N>::f();
int main() { cout << X[3] << endl; }
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0ZXhwciBpbnQgTiA9IDFlMTsKY29uc3RleHByIGludCBmKGludCB4KSB7IHJldHVybiB4KjI7IH0KdHlwZWRlZiBhcnJheTxpbnQsIE4+IEE7CnRlbXBsYXRlPGludC4uLiBpPiBzdHJ1Y3QgRiB7IHN0YXRpYyBjb25zdGV4cHIgQSBmKCkgeyByZXR1cm4gQXt7IDo6ZihpKS4uLiB9fTsgfSB9Owp0ZW1wbGF0ZTxjbGFzcyBBLCBjbGFzcyBCPiBzdHJ1Y3QgQyB7fTsKdGVtcGxhdGU8aW50Li4uIGksIGludC4uLiBqPiBzdHJ1Y3QgQzxGPGkuLi4+LCBGPGouLi4+PiA6IEY8aS4uLiwgKHNpemVvZi4uLihpKStqKS4uLj4geyB1c2luZyBUID0gRjxpLi4uLCAoc2l6ZW9mLi4uKGkpK2opLi4uPjsgfTsKdGVtcGxhdGU8aW50IG4+IHN0cnVjdCBTIDogQzx0eXBlbmFtZSBTPG4vMj46OlQsIHR5cGVuYW1lIFM8bi1uLzI+OjpUPiB7fTsKdGVtcGxhdGU8PiBzdHJ1Y3QgUzwxPiA6IEY8MD4geyB1c2luZyBUID0gRjwwPjsgfTsKY29uc3RleHByIGF1dG8gWCA9IFM8Tj46OmYoKTsKaW50IG1haW4oKSB7IGNvdXQgPDwgWFszXSA8PCBlbmRsOyB9