#include <iostream>
#include <cstring>
using namespace std;
int n, R, nr[100];
string sol;

string ToString(int x)
{
    string rez, rez2;
    rez.clear();
    rez2.clear();
    if(x == 0)
    {
        rez += "0";
        return rez;
    }
    while(x)
    {
        rez += (char)(x % 10 + '0');
        x /= 10;
    }
    int i;
    for(i = rez.size() - 1; i >= 0; --i)
        rez2 += rez[i];
    return rez2;
}

int main()
{
    int i,x, d;
    cin >> n >> R;
    sol.clear();
    if(n == 4)
    {
        sol += "1";
        cout << sol << "\n";
        return 0;
    }
    sol += "(";
    for(i = 2; i <= n; ++i)
    {
        x = i;
        while(x % 2 == 0)
        {
            x /= 2;
            nr[2]++;
        }
        d = 3;
        while(x > 1)
        {
            while(x % d == 0)
            {
                x /= d;
                nr[d]++;
            }
            d += 2;
        }
    }

    n /= 4;

    for(i = 2; i <= n; ++i)
    {
        x = i;
        while(x % 2 == 0)
        {
            x /= 2;
            nr[2]--;
        }
        d = 3;
        while(x > 1)
        {
            while(x % d == 0)
            {
                x /= d;
                nr[d]--;
            }
            d += 2;
        }
    }
    nr[2] -= (3 * n);
    nr[3] -= n;
    d = 1;
    while(d < 100 && nr[d] == 0)
        d++;
    sol += ToString(d);
    sol += "^";
    sol += ToString(nr[d]);
    d++;
    while(d < 100)
    {
        if(nr[d] == 0)
        {
            d++;
            continue;
        }
        sol += "*";
        sol += ToString(d);
        sol += "^";
        sol += ToString(nr[d]);
        d++;
    }

    sol += ")^";
    sol += ToString(R);
    cout << sol << "\n";
    return 0;
}