#68. map的查询

map的查询

题目描述

输入 nn 个用户的姓名和电话号码,接着进行 mm 次查询操作,每次操作给定两个空格分隔的整数 cc, 字符串xx,其中 c[1,3]c∈[1, 3],具体含义如下:

  1. 1 name: 如果用户名 namename 存在则输出 namename 的电话,否则输出 NO
  2. 2 name:输出用户名字典序小于 namename 且距离 namename 最近的用户的电话,如果不存在输出 NO
  3. 3 name:输出首个用户名字典序大于 name 的用户的电话,如果不存在输出 NO

输入格式

11 行:两个空格分隔的整数,分别表示 nnmm。 接下来 nn 行:每行两个用空格分隔的字符串,分别表示用户的姓名和电话号码。 接下来 mm 行:每行一条指令,含义和题目表述中一致。

输出格式

输出 mm 行,每个查询的结果输出一行。

样例

输入#1

3 3
alex 13888888888
simba 13988888888
owen 18888888888
1 simba
2 alex
3 alex

输出#1

13988888888
NO
18888888888

数据范围

1n,m10001 ≤ n, m ≤ 1000。用户名是不超过 30 个字符的字符串,电话是包含 11 个数字且首字符不为 0 的字符串。输入数据保证用户名和电话都不存在重复。