#include using namespace std; int N, R; vector A, B; int main() { // freopen("date.in", "r", stdin); // freopen("date.out","w", stdout); cin.sync_with_stdio(false); cin >> N >> R; for (int i = 2; i <= N; i++) { A.push_back(i); } for (int i = 0; i < N / 4; i++) { for (int j = 2; j <= 4; j++) { B.push_back(j); } } for (int i = 2; i <= N / 4; i++) { B.push_back(i); } for (auto it : B) { int x = it; for (size_t i = 0; i < A.size() && x > 1; i++) { int g = __gcd(A[i], x); A[i] /= g; x /= g; } assert(x == 1); vector C; for (int x : A) { if (x > 1) { C.push_back(x); } } A = C; } cout << "("; for (size_t i = 0; i < A.size(); i++) { if (i > 0) { cout << "*"; } cout << A[i]; } cout << ")^" << R << endl; return 0; }