#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
    return a>b;//从大到小排序
}
void f(unsigned short n,unsigned short* num)//指针可以控制实参
{
    unsigned short num1[4];
    unsigned short maxnum  , minnum ;//最大数和最小数
    for (int i = 0; i < 4; i++)
    {
        num1[i] = n % 10;
        n /= 10;
        /*
        把每个数都取出来,放到数组num1中
        */
    }
    sort(num1,num1+4,cmp);//把每位从大到小排序

    maxnum = num1[0]*1000+num1[1]*100+num1[2]*10+num1[3];//赋值最大数-正赋
    minnum = num1[3]*1000+num1[2]*100+num1[1]*10+num1[0];//赋值最小数-反赋
    cout<<maxnum<<"-"<<minnum<<"="<<maxnum-minnum<<endl;//输出最大数减最小数
    *num = maxnum-minnum;//可以直接控制实参
}
int main ()
{
    unsigned short n , n1 = 0;
    cin>>n;
    if(n%1111==0){//判断四位是否相同
        cout<<"无法解决";
        return 0;
    }else if(n>9999||n<1000){//判断是否为四位数
        cout<<"输入错误";
        return 0;
    }else if(n==6174){//判断是否为6174
        cout<<"已是6174!";
        return 0;
    }else{
        while (n1!=6174){//循环直到n1为6174——如果为6174则完成
            f(n,&n1);//进入函数
            n = n1;//将n1赋值给n
        }
    }
    return 0;
}