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