#include <bits/stdc++.h>
const int N = 100005;
using namespace std;
stack<int> st, ss;
int n, m, vis[N], a1[N], a2[N], f1[N], ans[N];
bool cmp1(int a, int b) { return a > b; }
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> m;
  for (int i = 0; i < n; ++i) cin >> a1[i], a1[i] %= m;
  for (int i = 0; i < n; ++i) cin >> a2[i], a2[i] %= m;
  sort(a1, a1 + n, cmp1);
  sort(a2, a2 + n, cmp1);
  while (!ss.empty()) ss.pop();
  while (!st.empty()) st.pop();
  for (int i = 0; i < n; i++) ss.push(a2[i]);
  for (int i = 0; i < n; ++i) {
    while (!ss.empty() && (ss.top() + a1[i]) < m) st.push(ss.top()), ss.pop();
    if (!st.empty()) ans[st.top() + a1[i]]++, vis[i] = 1, st.pop();
  }
  while (!ss.empty()) st.push(ss.top()), ss.pop();
  for (int i = 0; i < n; ++i)
    if (vis[i] == 0) ans[(a1[i] + st.top()) % m]++, st.pop();
  for (int i = m - 1; i >= 0; --i)
    for (int j = 0; j < ans[i]; j++) cout << i << " ";
  return 0;
}
