#include <iostream>
using namespace std;//好递归啊 没做出来 看完发现递归还是没那么好想

void ten_to_two(int n){
    char a[100];
    int ind=0,i,num=-1;
    while(n){
        a[ind] = n%2+'0';
        if(a[ind]=='1'){
            num++;
        }
        ind++;
        n/=2;
    }
    for(i=ind-1;i>=0;i--){
        if(i>1&&a[i]=='1'){ 
            cout << "2(";
            ten_to_two(i);  //大于2的时候
            cout << ")";
        }else if(i==1&&a[i]=='1'){
            cout << "2";    //等于2 的时候
        }else if(i==0&&a[i]=='1'){
            cout << "2(0)";  //等于1的时候
        }
        if(a[i]=='1'&&num-->0){
            cout << "+";
        }
    }
}

int main(){
    int n;
    while(cin >> n){
        /*
            把n变成二进制 从而输出
        */
        ten_to_two(n);
        cout << endl;
    }
    return 0;
}