#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;
}