枚举 · 例19扩展-点名:hard
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题为困难版本,与简单版本的区别较大,请注意区分。
\hspace{15pt}班级中有 n 个学生,学号由大小写字母和数字混合构成。现在,你已经知道了每个人的学号。
\hspace{15pt}今天的活动来了 n-2 个学生,点名册已经记录下了他们的学号。
\hspace{15pt}请你找出哪两个学生没有来。

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 10^4 \right) 代表学生总数。
\hspace{15pt}随后 n 行,每行输入一个长度不超过 20 ,由大小写字母和数字混合构成的字符串 s ,代表一个学生的学号。保证学号互不相同。
\hspace{15pt}随后 n-2 行,每行输入一个字符串 s ,代表今天来的学生的学号。保证学号存在。

输出描述:

\hspace{15pt}输出两行,每行输出一个字符串,代表没有来的学生的学号。字典序较小的先输出。
示例1

输入

复制
5
A12a
B12b
D12d
C12c
E12e
A12a
B12b
E12e

输出

复制
C12c
D12d