Vasya and Petya were tired of studying so they decided to play a game. Before the game begins Vasya looks at array *a* consisting of *n* integers. As soon as he remembers all elements of *a* the game begins. Vasya closes his eyes and Petya does *q* actions of one of two types:

1) Petya says 4 integers *l*1, *r*1, *l*2, *r*2 — boundaries of two non-intersecting segments. After that he swaps one random element from the [*l*1, *r*1] segment with another random element from the [*l*2, *r*2] segment.

2) Petya asks Vasya the sum of the elements of *a* in the [*l*, *r*] segment.

Vasya is a mathematician so he answers Petya the mathematical expectation of the sum of the elements in the segment.

Your task is to write a program which will answer the second type questions as Vasya would do it. In other words your program should print the mathematical expectation of the sum of the elements of *a* in the [*l*, *r*] segment for every second type query.
The first line contains two integers *n*, *q* (2 ≤ *n* ≤ 10<sup class="upper-index">5</sup>, 1 ≤ *q* ≤ 10<sup class="upper-index">5</sup>)  — the number of elements in the array and the number of queries you need to handle.

The second line contains *n* integers *a*<sub class="lower-index">*i*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>)  — elements of the array.

The next *q* lines contain Petya's actions of type 1 or 2.

If it is a type 1 action then the line contains 5 integers 1, *l*1, *r*1, *l*2, *r*2 (1 ≤ *l*1 ≤ *r*1 ≤ *n*, 1 ≤ *l*2 ≤ *r*2 ≤ *n*).

If it is a type 2 query then the line contains 3 integers 2, *l*, *r* (1 ≤ *l* ≤ *r* ≤ *n*).

It is guaranteed that there is at least one type 2 query and segments [*l*1, *r*1], [*l*2, *r*2] don't have common elements.
none
import sys
import numpy as np

i = 0
actions = []
for line in sys.stdin:
    if i==0:
        [n, q] = line.strip().split(' ')
    elif i==1:
        exp_vals = np.array(list(map(float,line.strip().split(' '))))
    else:
        action = list(map(int,line.strip().split(' ')))
        if action[0]==1:
            [l1, r1, l2, r2] = action[1:]
            mean1 = np.mean(exp_vals[l1-1:r1])
            mean2 = np.mean(exp_vals[l2-1:r2])
            exp_vals[l1-1:r1] = (r1-l1)/(r1-l1+1)*exp_vals[l1-1:r1] + 1/(r1-l1+1)*mean2
            exp_vals[l2-1:r2] = (r2-l2)/(r2-l2+1)*exp_vals[l2-1:r2] + 1/(r2-l2+1)*mean1

        elif action[0]==2:
            [l,r] = action[1:]
            print(sum(exp_vals[l-1:r]))
    i+=1

