等公交车
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

小G和朋友约好了时间出去玩,他选择坐公交车去找对方。
早早的便来到了公交站牌处开始了等公交车,但公交车却迟迟不来,终于在他濒临爆发的时候,公交车终于缓缓开来。开心的和朋友会合后,他们便开始了一天的玩乐。回到家后,小G还是对于等公交车耿耿于怀,现已知每天都会发出m辆公交车,在手机上它可以查出这m辆公交车的发车时刻第t_i分钟,并且他还知道所有的站点信息,总共有n个公交车站点,第 i 个站点距离发车点的距离为d_i米。已知公交车的速度为1米/分钟,发车点和所有的站点都在一条直线上, 每次公交车从发车点出发后,依次经过每个站点。他想知道能否设计一个程序,当每次一个乘客在某个时刻时到达某个站点时,可以直接告诉他需要等待的时间?

输入描述:

第一行两个个正整数,表示n,m.
第二行n个正整数,表示n个站点距离发车点的距离d_i.(数据保证d_i递增)
第三行m个正整数,表示m辆公交车的发车时刻t_i.(数据保证t_i递增)
第四行一个正整数Q,表示接下来的询问个数。
接下来Q行,每行两个正整数t,x,表示该乘客在时刻t时来到了x号站点。
对于100%的数据,1 \leq n,m, q \leq 10^5, 1\leq l_i,t_i\leq 2\times 10^9

输出描述:

Q行,每行一个整数表示需要等待的时间,若该乘客任何公交车都无法乘上,请输出`TNT`
示例1

输入

复制
2 3
2 4
1 3 5
5
3 1
4 1
5 1
8 2
10 2

输出

复制
0
1
0
1
TNT