#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
#define mp make_pair
#define pb push_back
#define T ll t; cin>>t; while(t--)
#define print(name) for(auto t:name){cout<<t<<" ";}cout<<endl;
#define mod 1000000007
#define mod1 998244353
#define inf 1000000000000000000
#define mem(name,val) memset(name,val,sizeof(name))
#define f(n) for(ll i=0;i<n;i++)
#define rep(i,a,n) for(ll i=a;i<n;i++)
#define endl "\n"
ll gcd(ll a,ll b){if(b==0){return a;}return gcd(b,a%b);}
ll g1(ll n)
{
 string s=to_string(n);
 sort(s.begin(),s.end(),greater<char>());
 ll k1=stoll(s);
 return k1;
}
ll g2(ll n)
{
  string s=to_string(n);
  sort(s.begin(),s.end());
  ll k1=stoll(s);
  return k1;
}
ll func(ll n)
{
   return g1(n)-g2(n);
}
int main()
{
   ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
   #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
   #endif
   ll n,k;cin>>n>>k;
   //map<ll,ll>m;
   for(int i=1;i<=k;i++)
   {
    n=func(n);
   }
   cout<<n<<endl; 
}
#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,i,j,ii,jj,zx,xc,f[1500009],pas;
multiset <int> s,h;
multiset <int>::iterator it,tt;
void ins(int q){
	it=h.lower_bound(q);
	if(it!=h.end()&&(*it)==q){
		h.erase(it);
	}
	s.insert(q);
}
void er(int q){
	it=s.lower_bound(q);
	s.erase(it);
	it=s.lower_bound(q);
	if(it!=s.end()&&(*it)==q){
		
	}else{
		h.insert(q);
	}
}
void chk(){
	tt=h.begin();
	if(pas>(*tt)) pas=(*tt);
}
int main(){
	ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>a>>b;
	pas=a+2;
	for(i=1; i<=a; i++){
		cin>>f[i];
	}
	for(i=0; i<=a+2; i++){
		h.insert(i);
	}
	for(i=1; i<=b; i++){
		//s.insert(f[i]);
		ins(f[i]);
	}
	chk();
	for(i=b+1; i<=a; i++){
		c=f[i-b];
		/*it=s.lower_bound(c);
		s.erase(it);*/
		er(c);
		//s.insert(f[i]);
		ins(f[i]);
		chk();
	}
	cout<<pas;
	return 0;
}