#include<iostream>
#include<cstdio>
#include<algorithm>
#define RMQ 1,0,n2-1
using namespace std;
int maxt[2000010];
int mint[2000010];
int n2;
int n,l;
void sn2()
{
int two=1;
while(two<n)
two*=2;
n2=two;
}
void build(int i)
{
if(i>=n2)
{
if(i-n2>=n)
{
maxt[i]=-10000000;
mint[i]=10000000;
}
return;
}
build(i*2);
build(i*2+1);
maxt[i]=max(maxt[i*2],maxt[i*2+1]);
mint[i]=min(mint[i*2],mint[i*2+1]);
}
int findMax(int l,int r,int i,int L,int R)
{
int mid=(L+R)/2;
if(L==l && R==r)
{
return maxt[i];
}
if(r<=mid)
{
return findMax(l,r,i*2,L,mid);
}
else if(l>mid)
{
return findMax(l,r,i*2+1,mid+1,R);
}
else
{
return max( findMax(l,mid,i*2,L,mid) ,
findMax(mid+1,r,i*2+1,mid+1,R) );
}
}
int findMin(int l,int r,int i,int L,int R)
{
int mid=(L+R)/2;
if(L==l && R==r)
{
return mint[i];
}
if(r<=mid)
{
return findMin(l,r,i*2,L,mid);
}
else if(l>mid)
{
return findMin(l,r,i*2+1,mid+1,R);
}
else
{
return min( findMin(l,mid,i*2,L,mid) ,
findMin(mid+1,r,i*2+1,mid+1,R) );
}
}
int main()
{
while(~scanf("%d %d",&n,&l),n!=0||l!=0)
{
if(l>=n)l=n-1;
sn2();
for(int i=0;i<n;i++)
{
int a;
scanf("%d",&a);
maxt[n2+i]=mint[n2+i]=a;
}
build(1);
int ans=0;
for(int i=0;i+l<n;i++)
{
ans=max(ans , findMax(i,i+l,RMQ)-findMin(i,i+l,RMQ));
}
printf("%d\n",ans);
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8YWxnb3JpdGhtPgoKI2RlZmluZSBSTVEgMSwwLG4yLTEKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYXh0WzIwMDAwMTBdOwppbnQgbWludFsyMDAwMDEwXTsKaW50IG4yOwppbnQgbixsOwp2b2lkIHNuMigpCnsKICAgIGludCB0d289MTsKICAgIHdoaWxlKHR3bzxuKQogICAgICAgIHR3byo9MjsKICAgIG4yPXR3bzsKfQp2b2lkIGJ1aWxkKGludCBpKQp7CiAgICBpZihpPj1uMikKICAgIHsKICAgICAgICBpZihpLW4yPj1uKQogICAgICAgIHsKICAgICAgICAgICAgbWF4dFtpXT0tMTAwMDAwMDA7CiAgICAgICAgICAgIG1pbnRbaV09MTAwMDAwMDA7CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgIH0KICAgIGJ1aWxkKGkqMik7CiAgICBidWlsZChpKjIrMSk7CiAgICBtYXh0W2ldPW1heChtYXh0W2kqMl0sbWF4dFtpKjIrMV0pOwogICAgbWludFtpXT1taW4obWludFtpKjJdLG1pbnRbaSoyKzFdKTsKfQppbnQgZmluZE1heChpbnQgbCxpbnQgcixpbnQgaSxpbnQgTCxpbnQgUikKewogICAgaW50IG1pZD0oTCtSKS8yOwogICAgaWYoTD09bCAmJiBSPT1yKQogICAgewogICAgICAgIHJldHVybiBtYXh0W2ldOwogICAgfQogICAgaWYocjw9bWlkKQogICAgewogICAgICAgIHJldHVybiBmaW5kTWF4KGwscixpKjIsTCxtaWQpOwogICAgfQogICAgZWxzZSBpZihsPm1pZCkKICAgIHsKICAgICAgICByZXR1cm4gZmluZE1heChsLHIsaSoyKzEsbWlkKzEsUik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0dXJuIG1heCggZmluZE1heChsLG1pZCxpKjIsTCxtaWQpICwKICAgICAgICAgICAgICAgICAgICBmaW5kTWF4KG1pZCsxLHIsaSoyKzEsbWlkKzEsUikgKTsKICAgIH0KfQppbnQgZmluZE1pbihpbnQgbCxpbnQgcixpbnQgaSxpbnQgTCxpbnQgUikKewogICAgaW50IG1pZD0oTCtSKS8yOwogICAgaWYoTD09bCAmJiBSPT1yKQogICAgewogICAgICAgIHJldHVybiBtaW50W2ldOwogICAgfQogICAgaWYocjw9bWlkKQogICAgewogICAgICAgIHJldHVybiBmaW5kTWluKGwscixpKjIsTCxtaWQpOwogICAgfQogICAgZWxzZSBpZihsPm1pZCkKICAgIHsKICAgICAgICByZXR1cm4gZmluZE1pbihsLHIsaSoyKzEsbWlkKzEsUik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0dXJuIG1pbiggZmluZE1pbihsLG1pZCxpKjIsTCxtaWQpICwKICAgICAgICAgICAgICAgICAgICBmaW5kTWluKG1pZCsxLHIsaSoyKzEsbWlkKzEsUikgKTsKICAgIH0KfQppbnQgbWFpbigpCnsKICAgIHdoaWxlKH5zY2FuZigiJWQgJWQiLCZuLCZsKSxuIT0wfHxsIT0wKQogICAgewogICAgICAgIGlmKGw+PW4pbD1uLTE7CiAgICAgICAgc24yKCk7CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBhOwogICAgICAgICAgICBzY2FuZigiJWQiLCZhKTsKICAgICAgICAgICAgbWF4dFtuMitpXT1taW50W24yK2ldPWE7CiAgICAgICAgfQogICAgICAgIGJ1aWxkKDEpOwogICAgICAgIGludCBhbnM9MDsKICAgICAgICBmb3IoaW50IGk9MDtpK2w8bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBhbnM9bWF4KGFucyAsIGZpbmRNYXgoaSxpK2wsUk1RKS1maW5kTWluKGksaStsLFJNUSkpOwogICAgICAgIH0KICAgICAgICBwcmludGYoIiVkXG4iLGFucyk7CiAgICB9Cn0K