#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
  int n, k, ck, ckmax, ckmax2, maxa, point, max, min;
  vector<int> c;
  vector<int>::iterator it, p, q;
  while(1) { 
    cin >> n >> k;   
    if(n==0 && k==0) break;  
    max=maxa=0;  
    for(int i=0; i<n; i++) {  
      cin >> ck;     
      c.push_back(ck);    
      if(max<ck) max = ck; 
    }    
    ckmax=ckmax2=1; 
    for(int i=0; i<=n-k; i++) {  
      ck=1;  
      for(it = c.begin()+i; it != c.begin()+i+k; it++) {  
	ck*=*it; 
      }  
      min = *min_element(c.begin()+i, c.begin()+i+k);  
      if(ck > ckmax) {  
	ckmax=ck;  
	p = c.begin()+i;   
      }   
      if(ck/min > ckmax2) {  
	ckmax2=ck/min;  
	q = c.begin()+i;  
      }  
    }     
    for(it=c.begin(); it!=c.end(); it++) {   
      if(*it>maxa && (it<q || it>=q+k)) maxa = *it;  
    } 
    if(maxa>min) ckmax2*=maxa;   
    else ckmax2*=min;  
    point = ckmax2-ckmax;  
    cout << point << endl;    
    c.clear(); 
  }  
  return 0;
}
