#include using namespace std; #define ALL(x) (x).begin(),(x).end() #define IO ios::sync_with_stdio(false),cin.tie(nullptr); #define LB(v, x) (ll)(lower_bound(ALL(v),x)-(v).begin()) #define UQ(v) sort(ALL(v)),(v).erase(unique(ALL(v)),v.end()) #define REP(i, n) for(ll i=0; i<(ll)(n); i++) #define FOR(i, a, b) for(ll i=(ll)(a); (a)<(b) ? i<(b) : i>(b); i+=((a)<(b) ? 1 : -1)) #define chmax(a, b) ((a)<(b) ? ((a)=(b), 1) : 0) #define chmin(a, b) ((a)>(b) ? ((a)=(b), 1) : 0) template using rpriority_queue=priority_queue,greater>; using ll=long long; const int INF=1e9+10; const ll INFL=4e18; using ld=long double; using ull=uint64_t; using VI=vector; using VVI=vector; using VL=vector; using VVL=vector; using PL=pair; using VP=vector; using WG=vector>>; /// @brief x^n (mod m) を返す /// @note O(log(m)) template T ModPow(T x, T n, T mod){ ll ret=1; if(typeid(T)==typeid(ll)&&mod>INF*2) return ModPow<__int128_t>(x,n,mod); while(n>0){ if(n&1) (ret*=x)%=mod; (x*=x)%=mod; n>>=1; } return ret; } /// @brief x^(-1) (mod m) を返す ll ModInv(ll a, ll m){ ll b=m,u=1,v=0; while(b){ ll t=a/b; a-=t*b; swap(a,b); u-=t*v; swap(u,v); } return (u+m)%m; } //---------------------------------------------------------- int main(){ const int mx=1e5; const ll mod=1e9+7; ll A=352,B=384; ll Y=ModPow(A,B,mod); map> st; FOR(X,100,mx+1){ ll P=ModPow(X,A,B); ll K=gcd(X,Y); st[K].insert(P); } cout<>K; cout<<*st[K].begin()<<'\n'; }