TYPE desk integer(kind=8)::chair integer(kind=8)::num end type desk integer*8::i,N,seito=0 type(desk),allocatable::desks(:) read *, N allocate(desks(N)) read *,desks do i=1,N if(desks(i)%chair.le.2) then seito = seito + desks(i)%num else seito = seito + desks(i)%num*2 end if end do print '(i0)', MOD(seito, 1000000000+7) end program