n, k, q = list(map(int, input().split()))

a = list(map(int, input().split()))

 

d = [a]

a = sorted(a)

ans = a[q - 1] - a[0]

 

while True:

    newd = list()

    li = list()

    for sub in d:

        for c in sub:

            if c != a[0]:

                li.append(c)

            else:

                newd.append(li)

                li = list()

        newd.append(li)

        li = list()

 

    d = list()

    a = list()

    for li in newd:

        if len(li) < k:

            continue

        else:

            d.append(li)

            li = sorted(li)

            a.extend(li[0:len(li) - k + 1])

 

    a.sort()

 

    if len(a) >= q:

        ans = min(a[q - 1] - a[0], ans)

    else:

        break

print(ans)

N, K, Q = list(map(int, input().split()))

a = list(map(int, input().split()))



d=[a]

a = sorted(a)



ans = a[Q-1] - a[0]





while True:

  d_temp = list()

  sub_temp = list()

  for sub in d:

    for c in sub:

      if c != a[0]:

        sub_temp.append(c)

      else:

        d_temp.append(sub_temp)

        sub_temp = list()

    d_temp.append(sub_temp)

    sub_temp = list()



  d = list()

  a = list()

  for sub in d_temp:

    if len(sub) < K:

      continue

    else:

      d.append(sub)

      sub = sorted(sub)

      a.extend(sub[0:len(sub)-K+1])



  a.sort()



  if len(a) < Q:

    break

  else:

    ans = min(ans, a[Q-1] - a[0])



print(ans)

n, k, q = list(map(int, input().split()))
a = list(map(int, input().split()))
d = [a]
a = sorted(a)
ans = a[q - 1] - a[0]
while True:
    newd = list()
    li = list()
    for sub in d:
        for c in sub:
            if c != a[0]:
                li.append(c)
            else:
                newd.append(li)
                li = list()
        newd.append(li)
        li = list()
    d = list()
    a = list()
    for li in newd:
        if len(li) < k:
            continue
        else:
            d.append(li)
            li = sorted(li)
            a.extend(li[0 : len(li) - k + 1])
    a.sort()
    if len(a) >= q:
        ans = min(a[q - 1] - a[0], ans)
    else:
        break
print(ans)

N, K, Q = list(map(int, input().split()))
a = list(map(int, input().split()))
d = [a]
a = sorted(a)
ans = a[Q - 1] - a[0]
while True:
    d_temp = list()
    sub_temp = list()
    for sub in d:
        for c in sub:
            if c != a[0]:
                sub_temp.append(c)
            else:
                d_temp.append(sub_temp)
                sub_temp = list()
        d_temp.append(sub_temp)
        sub_temp = list()
    d = list()
    a = list()
    for sub in d_temp:
        if len(sub) < K:
            continue
        else:
            d.append(sub)
            sub = sorted(sub)
            a.extend(sub[0 : len(sub) - K + 1])
    a.sort()
    if len(a) < Q:
        break
    else:
        ans = min(ans, a[Q - 1] - a[0])
print(ans)

-n, k, q = list(map(int, input().split())) +N, K, Q = list(map(int, input().split())) -ans = a[q - 1] - a[0] +ans = a[Q - 1] - a[0] -    newd = list() -    li = list() +    d_temp = list() +    sub_temp = list() -                li.append(c) +                sub_temp.append(c) -                newd.append(li) -                li = list() -        newd.append(li) -        li = list() +                d_temp.append(sub_temp) +                sub_temp = list() +        d_temp.append(sub_temp) +        sub_temp = list() -    for li in newd: -        if len(li) < k: +    for sub in d_temp: +        if len(sub) < K: -            d.append(li) -            li = sorted(li) -            a.extend(li[0 : len(li) - k + 1]) +            d.append(sub) +            sub = sorted(sub) +            a.extend(sub[0 : len(sub) - K + 1]) -    if len(a) >= q: -        ans = min(a[q - 1] - a[0], ans) +    if len(a) < Q: +        break -        break +        ans = min(ans, a[Q - 1] - a[0])