There are n dormitories in Berland State University, they are numbered with integers from 1 to n. Each dormitory consists of rooms, there are ai rooms in i-th dormitory. The rooms in i-th dormitory are numbered from 1 to ai.
A postman delivers letters. Sometimes there is no specific dormitory and room number in it on an envelope. Instead of it only a room number among all rooms of all n dormitories is written on an envelope. In this case, assume that all the rooms are numbered from 1 to a1+a2+⋯+an and the rooms of the first dormitory go first, the rooms of the second dormitory go after them and so on.
For example, in case n=2, a1=3 and a2=5 an envelope can have any integer from 1 to 8 written on it. If the number 7 is written on an envelope, it means that the letter should be delivered to the room number 4 of the second dormitory.
For each of m letters by the room number among all n dormitories, determine the particular dormitory and the room number in a dormitory where this letter should be delivered.
Input
The first line contains two integers n and m (1≤n,m≤2⋅105) — the number of dormitories and the number of letters.
The second line contains a sequence a1,a2,…,an (1≤ai≤1010), where ai equals to the number of rooms in the i-th dormitory. The third line contains a sequence b1,b2,…,bm (1≤bj≤a1+a2+⋯+an), where bj equals to the room number (among all rooms of all dormitories) for the j-th letter. All bj are given in increasing order.
Output
Print m lines. For each letter print two integers f and k — the dormitory number f (1≤f≤n) and the room number k in this dormitory (1≤k≤af) to deliver the letter.
Examples
Input
3 6
10 15 12
1 9 12 23 26 37
Output
1 1
1 9
2 2
2 13
3 1
3 12
Input
2 3
5 10000000000
5 6 9999999999
Output
1 5
2 1
2 9999999994
Note
In the first example letters should be delivered in the following order:
the first letter in room 1 of the first dormitory
the second letter in room 9 of the first dormitory
the third letter in room 2 of the second dormitory
the fourth letter in room 13 of the second dormitory
the fifth letter in room 1 of the third dormitory
the sixth letter in room 12 of the third dormitory
这道破题早上卡了我半个小时至少
前缀和加二分查找 早上怎么就一直过不去
代码:
#include <cstdio>
#include <algorithm>
#include <map>
#include <vector>
using namespace std;
int n,m;
const int MAXN=200020;
long long presum[MAXN];
long long b;
int main(void){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld",&b);
presum[i]=presum[i-1]+b;
}
while(m--){
scanf("%lld",&b);
int idx=lower_bound(presum,presum+n,b)-presum;
printf("%d %lld\n",idx,b-presum[idx-1]);
}
return 0;
}