#include <bits/stdc++.h>
int n, m, d;
int a[100010];
int cnt[1000];
int code[100010], k;
int bcnt[1048576];
int dp[1048576];
int main() {
  int i, j;
  scanf("%d%d%d", &n, &m, &d);
  for (i = 0; i < m; i++) {
    int c;
    scanf("%d", &c);
    for (j = 0; j < c; j++) {
      int x;
      scanf("%d", &x);
      a[x - 1] = i;
    }
  }
  for (i = 0; i < n; i++) {
    cnt[a[i]]++;
    if (i >= d) cnt[a[i - d]]--;
    int c = 0;
    for (j = 0; j < m; j++)
      if (cnt[j]) c |= 1 << j;
    if (i >= d - 1) code[k++] = c;
  }
  for (i = 0; i < k; i++) dp[(1 << m) - 1 - code[i]] = 1;
  for (i = (1 << m) - 1; i >= 0; i--) {
    for (j = 0; j < m; j++)
      if (i & (1 << j)) bcnt[i]++;
    if (dp[i]) {
      for (j = 0; j < m; j++) {
        if (i & (1 << j)) dp[i - (1 << j)] = 1;
      }
    }
  }
  int ans = m;
  for (i = 0; i < (1 << m); i++) {
    if (!dp[i] && bcnt[i] < ans) ans = bcnt[i];
  }
  printf("%d\n", ans);
  return 0;
}
