#include <bits/stdc++.h>
using namespace std;
int T, n, p[400010];
long long m, mx, mn, K, a[400010], b[400010], L, R, tp, f[400010], g[400010],
    pre[400010];
bool cmp(int a, int b) { return f[a] < f[b]; }
void solve() {
  scanf("%lld%d%lld", &m, &n, &K), K += n + 1, mx = 0, mn = m;
  for (int i = 1; i <= n; i++)
    scanf("%lld", &a[i]), b[i] = a[i] - a[i - 1], mx = max(b[i], mx),
                          mn = min(mn, b[i]);
  b[n + 1] = m - a[n], n++;
  mx = max(b[n], mx), mn = min(b[n], mn);
  long long l = 1, r = mx, mid, sum;
  while (l <= r) {
    mid = (l + r) >> 1, sum = 0;
    for (int i = 1; i <= n; i++) sum += (b[i] + mid - 1) / mid;
    if (sum <= K)
      R = mid, r = mid - 1;
    else
      l = mid + 1;
  }
  l = 1, r = mn;
  while (l <= r) {
    mid = (l + r) >> 1, sum = 0;
    for (int i = 1; i <= n; i++) sum += b[i] / mid;
    if (sum >= K)
      L = mid, l = mid + 1;
    else
      r = mid - 1;
  }
  for (int i = 1; i <= n; i++) {
    p[i] = i;
    tp = b[i] / L, g[i] = max(R, (b[i] + tp - 1) / tp);
    tp = (b[i] + R - 1) / R, f[i] = min(L, b[i] / tp);
  }
  sort(p + 1, p + n + 1, cmp), pre[0] = R;
  for (int i = 1; i <= n; i++) pre[i] = max(pre[i - 1], g[p[i]]);
  long long res = pre[n] - L;
  for (int i = 1; i <= n; i++) res = min(res, pre[i - 1] - f[p[i]]);
  printf("%lld\n", res);
}
int main() {
  scanf("%d", &T);
  while (T--) solve();
}
