if __name__ == '__main__':
n, m = map(int, raw_input().split())
nums_1 = list(map(int, raw_input().split()))
nums_2 = list(map(int, raw_input().split()))
record_1 = [0] * m
record_2 = [0] * m
res = [0] * n
for i in range(n):
record_1[nums_1[i]] += 1
record_2[nums_2[i]] += 1
idx = 0
for k in range(m-1, 0, -1):
if idx == n:
break
for v in range(max(0, k-m+1), min(k, m-1) + 1): #当组成和为k的两个数,v的搜索空间
if record_1[v] and record_2[k-v]:
res[idx] = k
idx += 1
record_1[v] -= 1
record_2[k-v] -= 1
k += m
for v in range(max(0, k-m+1), min(k, m-1) + 1):
if record_1[v] and record_2[k-v]:
res[idx] = k
idx += 1
record_1[v] -= 1
record_2[k-v] -= 1
print ' '.join(map(str, res))
#360公司##笔试题目#