재앙적인 배가

매시간 박테리아가 두 배가 된 뒤 실험이 b_i마리를 소모한다. 남은 수를 1e9+7로 나눈 나머지를 출력하고, 중간에 부족하면 error를 출력한다.

보통6시뮬레이션수학그리디구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

과학자 E. Collie가 박테리아 실험을 시작한다. 지금 손에 있는 박테리아는 한 마리다. 이 종은 한 시간마다 수가 두 배로 늘어나므로, 한 시간 뒤에는 두 마리가 된다.

E. Collie는 nn시간 동안 매 시간 실험을 한 번씩 한다. 첫 실험은 첫 박테리아가 자라기 시작한 지 정확히 한 시간 뒤에 시작한다. ii번째 실험에는 박테리아 bib_i마리가 필요하다. 즉 매 시간 박테리아 수가 먼저 두 배로 늘어나고, 그다음 그 시간의 실험이 필요한 만큼 가져간다.

마지막 실험을 시작한 직후에 남는 박테리아 수를 구하라. 실험에 필요한 만큼 박테리아가 모자란 순간이 한 번이라도 있으면 대신 error를 출력한다.

답이 매우 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다.

입력

입력은 두 줄이다.

  • 첫째 줄에 실험 횟수 nn이 주어진다. (1n1051 \le n \le 10^5)
  • 둘째 줄에 정수 b1,,bnb_1, \ldots, b_n이 공백으로 구분되어 주어진다. bib_iii번째 실험에 쓰는 박테리아 수다. (0bi2600 \le b_i \le 2^{60})

출력

모든 실험을 마친 뒤 남은 박테리아 수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다. 도중에 박테리아가 모자라면 수 대신 소문자 error를 출력한다.