def main(nums, k, q)
  numslist = [nums.dup]

  ans = 10**9
  # puts "ans:      #{ans}"
  # puts
  nums.sort.each do |x|
    numscand = numslist.flat_map do |ns|
      next [] if ns.size < k
      ns.sort[0..(ns.size - k)]
    end
    numscand = numscand.sort.take(q)
    break if numscand.size < q
    ans = [ans, numscand.sort.take(q).max - x].min
    # puts "numslist: #{numslist}"
    # puts "numscand: #{numscand}"
    # puts "x:        #{x}"
    # puts "ans:      #{ans}"
    # puts

    idx = nil
    ns_idx = numslist.find_index { |l| idx = l.index x }
    ns = numslist[ns_idx]
    if idx == ns.size - 1
      numslist[ns_idx] = ns[0..(idx - 1)]
    elsif idx == 0
      numslist[ns_idx] = ns[1..-1]
    else
      numslist << ns[(idx + 1)..-1]
      numslist[ns_idx] = ns[0..(idx - 1)]
    end
  end
  ans
end

_, k, q = gets.chomp.split(' ').map(&:to_i)
nums = gets.chomp.split(' ').map(&:to_i)
puts main(nums, k, q)