#include <bits/stdc++.h>
#define rep(i,a,b)	for(int i=a;i<=b;i++)
using namespace std;
const int N=2e3+5;
int n,k,Q,a[N],b[N];
priority_queue<int> q,p;
vector<int> v;
bool check(int pos)
{
	int mn=a[pos];
	for(int i=pos-k+1;i<=pos;i++)
		if(f[i][k]==mn)
			return true;
	return false;
}
void update()
{
	while(!q.empty())
	{	
		if(q.size()>=k)
			v.push_back(-q.top());
		q.pop();
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>k>>Q; 
	for(int i=1;i<=n;i++)	cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		f[i][1]=a[i];
		for(int j=i+1;j<=n;j++)
			f[i][j-i+1]=min(f[i][j-i],a[j]);
	}
	int res=2e9;
	for(int i=1;i<=n;i++)
	{
		if(!check(i))	continue;
		int mn=a[i];
		for(int j=1;j<=n;j++)
		{
			if(j==i)	continue;
			if(a[j]>=mn)
				q.push(-a[j]);
			else
				update();	
		}
		update();
		sort(v.begin(),v.end());
		if(v.size()>=Q-1)
			res=min(res,v[Q-2]-mn);
		v.clear();
	}
	cout<<res<<'\n';
	return 0;
} 