- Declare a 2-dimensional array, , of empty arrays. All arrays are zero indexed.
- Declare an integer, , and initialize it to . 
- There are types of queries, given as an array of strings for you to parse: - Query: 1 x y- Let .
- Append the integer to .
 
- Query: 2 x y- Let .
- Assign the value to .
- Store the new value of to an answers array.
 
 
- Query: 
Note:  is the bitwise XOR operation, which corresponds to the ^ operator in most languages. Learn more about it on Wikipedia.  is the modulo operator. 
Finally, size(arr[idx]) is the number of elements in arr[idx]  
Function Description
Complete the dynamicArray function below.
dynamicArray has the following parameters: 
- int n: the number of empty arrays to initialize in  
- string queries[q]: query strings that contain 3 space-separated integers 
Returns
- int[]: the results of each type 2 query in the order they are presented
Input Format
The first line contains two space-separated integers, , the size of  to create, and , the number of queries, respectively. 
Each of the  subsequent lines contains a query string, .
Constraints
- It is guaranteed that query type will never query an empty array or index.
Sample Input
2 5
1 0 5
1 1 7
1 0 3
2 1 0
2 1 1
Sample Output
7
3
Explanation
Initial Values: 
 
 
 = [ ] 
 = [ ]  
Query 0: Append  to . 
 
 = [5] 
 = [ ]      
Query 1: Append  to . 
 = [5] 
 = [7]   
Query 2: Append  to . 
 
 = [5, 3] 
 = [7]    
Query 3: Assign the value at index  of  to , print . 
 
 = [5, 3] 
 = [7]   
7
Query 4: Assign the value at index  of  to , print . 
 
 = [5, 3] 
 = [7]   
3