#include <bits/stdc++.h>

using namespace std;

int N, R;
vector<int> 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<int> 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;
}