#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
bool dfs(int sum, int n, bool flag, unordered_map<string, int> mp, vector<int> mark, vector<string> card, string res){
if(n == 4){
if(sum == 24){
cout << res << endl;
return true;
}
return false;
}
if(flag){
for(int i=0; i<4; ++i){
if(!mark[i]){
mark[i] = 1;
if(dfs(sum+mp[card[i]], n+1, true, mp, mark, card, res+"+"+card[i])||
dfs(sum-mp[card[i]], n+1, true, mp, mark, card, res+"-"+card[i])||
dfs(sum*mp[card[i]], n+1, true, mp, mark, card, res+"*"+card[i])||
dfs(sum/mp[card[i]], n+1, true, mp, mark, card, res+"/"+card[i]))
return true;
mark[i] = 0;
}
}
}else{
for(int i=0; i<4; ++i){
if(!mark[i]){
mark[i] = 1;
res = card[i];
if(dfs(mp[card[i]], 1, true, mp, mark, card, res))
return true;
mark[i] = 0;
}
}
}
return false;
}
int main() {
unordered_map<string, int> mp;
for (int i = 2; i <= 10; i++) //初始化
mp[to_string(i)] = i;
mp["A"] = 1;
mp["J"] = 11;
mp["Q"] = 12;
mp["K"] = 13;
vector<string> card(4);
for (int i = 0; i < 4; i++) { //如果存在大王小王,则输出ERROR
cin >> card[i];
if (card[i] == "joker" || card[i] == "JOKER") {
cout << "ERROR" << endl;
return 0;
}
}
vector<int> mark(4, 0);
if(!dfs(0, 0, false, mp, mark, card, ""))
cout << "NONE" << endl;
return 0;
}
// 64 位输出请用 printf("%lld")