#include <iostream>
using namespace std;
// 2^15=32768, 2^14=16384
void getExp(int *exp){
exp[0]=1;
for(int i=1;i<15;i++){
exp[i]=exp[i-1]*2;
}
}
string dfs(int n, int* exp){
string ans;
if(n==0) ans+='0'; // 样例不会输入0,此处为了得到递归 dfs(0)=0
for(int i=14;i>=0;i--){
if(exp[i]<=n){
n-=exp[i];
if(i==1) ans+="2"; // 2(1)=2单独处理
else {
ans+="2("+dfs(i,exp)+")";
}
if(n!=0) ans+='+'; // 说明当前层尚未求出完全解,添一个 +
}
}
return ans;
}
int main() {
int exp[15];
getExp(exp);
int n;
while(cin>>n){
cout<<dfs(n,exp)<<endl;
}
return 0;
}