# include <iostream>
const int N = 50005;
int L, n, m, d[N], l ( 1 ), r;
bool f ( int x ) {
int pos ( 0 ), ret ( 0 ), jet ( 0 );
while ( pos <= n ) {
pos ++;
if ( d[pos] - d[jet] < x ) ret ++;
else jet = pos;
}
if ( ret > m ) return 0; return 1;
}
int main () {
std::cin.tie ( 0 ) -> sync_with_stdio ( false );
std::cin >> L >> n >> m; r = L;
for ( int i ( 1 ); i <= n; i ++ )
std::cin >> d[i];
d[0] = 0, d[n + 1] = L;
while ( l < r - 1 ) {
int m ( ( l + r ) >> 1 );
if ( f ( m ) ) l = m;
else r = m - 1;
}
std::cout << l << '\n';
return 0;
}