#include <iostream>
#include <cmath>
struct Num
{
Num(int n) : n_(n) { }
int operator ^(int n) { return std::pow(n_, n); }
operator int() const { return n_; }
int n_;
};
template <int VAL>
constexpr Num build_num_literal()
{
return VAL;
}
template <int VAL, char DIGIT, char... REST>
constexpr Num build_num_literal()
{
return build_num_literal<(10 * VAL + DIGIT - '0'), REST...>();
}
template <char... STR>
constexpr Num operator"" _n()
{
return build_num_literal<0, STR...>();
}
int main()
{
std::cout << (3_n ^ 4) << '\n';
std::cout << (2_n ^ 8) << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CgpzdHJ1Y3QgTnVtCnsKICAgIE51bShpbnQgbikgOiBuXyhuKSB7IH0KICAgIGludCBvcGVyYXRvciBeKGludCBuKSB7IHJldHVybiBzdGQ6OnBvdyhuXywgbik7IH0KICAgIG9wZXJhdG9yIGludCgpIGNvbnN0IHsgcmV0dXJuIG5fOyB9CiAgICBpbnQgbl87Cn07Cgp0ZW1wbGF0ZSA8aW50IFZBTD4KY29uc3RleHByIE51bSBidWlsZF9udW1fbGl0ZXJhbCgpCnsKICByZXR1cm4gVkFMOwp9CiAKdGVtcGxhdGUgPGludCBWQUwsIGNoYXIgRElHSVQsIGNoYXIuLi4gUkVTVD4KY29uc3RleHByIE51bSBidWlsZF9udW1fbGl0ZXJhbCgpCnsKICByZXR1cm4gYnVpbGRfbnVtX2xpdGVyYWw8KDEwICogVkFMICsgRElHSVQgLSAnMCcpLCBSRVNULi4uPigpOwp9CiAKdGVtcGxhdGUgPGNoYXIuLi4gU1RSPgpjb25zdGV4cHIgTnVtIG9wZXJhdG9yIiIgX24oKQp7CiAgcmV0dXJuIGJ1aWxkX251bV9saXRlcmFsPDAsIFNUUi4uLj4oKTsKfQoKaW50IG1haW4oKQp7CglzdGQ6OmNvdXQgPDwgKDNfbiBeIDQpIDw8ICdcbic7CglzdGQ6OmNvdXQgPDwgKDJfbiBeIDgpIDw8ICdcbic7Cn0=