#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
const int mod = 1e9 + 7;
int n, m, d, k, x, ans, pos[N], a[30];
bool f[1 << 20];
int cal(int x) {
  int res = 0;
  for (int i = (0); i < (m); i++)
    if (x & (1 << i)) res++;
  return res;
}
int main() {
  scanf("%d%d%d", &n, &m, &d);
  for (int i = (0); i < (m); i++) {
    scanf("%d", &k);
    for (int j = (0); j < (k); j++) {
      scanf("%d", &x);
      pos[x] = i;
    }
  }
  for (int i = (1); i < (d + 1); i++) a[pos[i]]++;
  for (int i = (d); i < (n + 1); i++) {
    if (i > d) a[pos[i]]++, a[pos[i - d]]--;
    ;
    x = 0;
    for (int j = (0); j < (m); j++)
      if (!a[j]) x += (1 << j);
    f[x] = 1;
  }
  ans = m;
  for (int i = (1 << m) - 1; i >= 1; i--) {
    if (f[i]) {
      for (int j = (0); j < (m); j++)
        if ((1 << j) & i) {
          f[i - (1 << j)] = 1;
        }
    } else
      ans = min(ans, cal(i));
  }
  printf("%d", ans);
  return 0;
}
