#include<bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<pair<int,int>, null_type,less<pair<int,int>>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define int long long
#define pb push_back
#define pii pair<int,int>
#define endl "\n"
#define gok ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int mod = 1e9 + 7,mxn=2e5 + 5;
/*struct cmp
{
    bool operator() (pair<int,pii> a, pair<int,pii> b)
    {
        return a.first > b.first;
    }
};*/

signed main(){
    gok

  int k;
  string n;
  cin>>n>>k;

  for(int i=0;i<k;i++)
  {
      string n1 = n,n2 = n;
      sort(n1.begin(),n1.end());
      sort(n2.rbegin(),n2.rend());
      int v1 = stoi(n1);
      int v2 = stoi(n2);
      v2 -= v1;
      n = to_string(v2);
  }

  cout<<n;



        return 0;


    }


//  RAKSHIT KADAM
 #include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp> 3
// #include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
// #define ordered_set tree< int ,  null_type ,  less<int> ,  rb_tree_tag ,  tree_order_statistics_node_update>
#warning check the size of arrays!!!
// NUMERIC DEFINITIONS :
    #define INF 1000000000000000005
    #define inf 1000000004
    #define MOD  1000000007
    #define mod 998244353
    #define MAX 300006
    #define pi 3.1415926535897932384626433832795
#define ld long double
 #define ll long long
 #define int long long
 #define P(gg) for(auto rax:gg){cout<<rax<<" ";}cout<<endl;
 #define Need_for_speed(activated) ios_base :: sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)
 #define satisfy ll ter; cin>> ter; while(ter--)
 #define inp(n) int n;cin >> n
 #define mp make_pair
 #define pb push_back
 #define endl "\n"
 #define x first
 #define y second
 #define fore(i,a,b) for(ll i=a;i<b;i++)
 #define forci(i,n) for(ll i=0;i<n;i++)
 #define vi vector<ll>
 #define Endl endl
 #define lb lower_bound
 #define ub upper_bound
#define pii pair<ll,ll>

 #define input freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout)
 #define time        cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
using namespace std;

//ll gcd(ll a, ll b){if (b == 0)return a;return gcd(b, a % b);}
//
//int power(int x, unsigned int y, unsigned int m){ if (y == 0) return 1;int p = power(x, y/2, m) % m;  p = (p * p) % m;return (y%2 == 0)? p : (x * p) % m;}
//ll modInverse(int a, int m){{ return power(a, m-2, m);}}
//
//const int maxn = 500003;
//
//ll fact[200009];
//ll modIN[200009];
//void facto()
//{
//    ll lim =200005;fact[0]=1;
//    for(ll i=1;i<lim;i++)
//    {
//        fact[i]=(fact[i-1]*i)%MOD;
//    }
//
//}
//ll ncr(ll a,ll b)
//{
//    ll ret = 0;
//    if(b==0)return 1;
//    if(b>a)return 0;
//    ret = fact[a]*(modInverse(fact[b],MOD));
//
//    ret%=MOD;
//    ret*=modInverse(fact[a-b],MOD);
//    ret%=MOD;
//
//    return ret;
//}
//  """""   1LL << x    """""

void solve()
{
    ll n,k;cin>>n>>k;
    while(k--)
    {
        string s = to_string(n);
        sort(s.begin(),s.end());
        string a = s;
        string b = s;
        reverse(b.begin(),b.end());
        ll x= 0;
        for(auto it:a)
        {
            x*=10;
            x+=it-'0';
        }
        ll y = 0;
        for(auto it:b)
        {
            y*=10;
            y+=it-'0';
        }
        n=abs(y-x);
        if(n==0)
        {
            cout<<0<<endl;return;
        }
    }
    cout<<n<<endl;
}

signed main()
{
   Need_for_speed(activated);
    
//    satisfy
//    {
// solve();
//    }
    solve();
    
    return 0;
}




