#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) { return a % b == 0 ? b : gcd(b, a % b); }
const int MAXN = 100010;
int fst[MAXN], sec[MAXN];
int ans[MAXN];
int N, K;
int cmp(const int &a, const int &b) { return a > b; }
int main() {
  while (scanf("%d%d", &N, &K) != EOF) {
    for (int i = 1; i <= N; i++) scanf("%d", &fst[i]);
    for (int i = 1; i <= N; i++) scanf("%d", &sec[i]);
    sort(fst + 1, fst + 1 + N, cmp);
    sort(sec + 1, sec + 1 + N, cmp);
    int pos = N;
    int cnt = 0, stepl = 1, stepr = N;
    while (cnt < N && stepl <= N && stepr >= 1) {
      if (fst[stepl] + sec[stepr] >= K) {
        ans[cnt++] = fst[stepl] + sec[stepr];
        stepl++;
        stepr--;
      } else {
        stepr--;
      }
    }
    int tot = 0;
    for (int i = 0; i < N; i++)
      if (ans[i] >= K) tot++;
    printf("1 %d\n", min(tot, pos));
  }
  return 0;
}
