**Problem : Online Communities - Even Groups**

In a social network, online communities refer to the group of people with an interest towards the same topic. People connect with each other in a social network. A connection between Person

We are only interested in finding out the communities with the member count being an even number. Your task is to find out those communities.

**I**and Person**J**is represented as**C I J**. When two persons belonging to different communities connect, the net effect is merger of both communities which I and J belonged to.We are only interested in finding out the communities with the member count being an even number. Your task is to find out those communities.

**Input Format:**

Input will consist of three parts, viz.

1. The total number of people on the social network

**(N)**

2.Queries

**C I J**, connect I and J**Q 0 0**, print the number of communities with even member-count

**Output Format:**

For each query Q, output the number of communities with even member-count

**Constraints:**

**1<=N<=10^6**

**1<=I, J<=N**

**Sample Input and Output**

SNo. | Input | Output |
---|---|---|

1 | 5 Q 0 0 C 1 2 Q 0 0 C 2 3 Q 0 0 C 4 5 Q 0 0 -1 | 0 1 0 1 |

**Explanation:**

For first query there are no members in any of the groups hence answer is 0.

After C 1 2, there is a group (let's take it as G1) with 1 and 2 as members hence total count at this moment is 1.

After C 2 3 total members in G1 will become {1, 2, 3} hence there are no groups with even count.

After C 4 5 there formed a new group G2 with {4, 5} as members, hence the total groups with even count is 1.

*:*

**Note***Please do not use package and namespace in your code. For object oriented languages your code should be written in one class.*

*:*

**Note***Participants submitting solutions in C language should not use functions from*/ as these files do not exist in gcc

**Problem : Matrix Rotations**

You are given a square matrix of dimension

**N**. Let this matrix be called**A**. Your task is to rotate**A**in clockwise direction by**S**degrees, where**S**is angle of rotation. On the matrix, there will be 3 types of operations viz.- Rotation
Rotate the matrix A by angle S, presented as input in form of

**A S** **Q**ueryingQuery the element at row K and column L, presented as input in form of

**Q K L****U**pdationUpdate the element at row X and column Y with value Z, presented as input in form of

**U X Y Z**

Print the output of individual operations as depicted in Output Specification

**Input Format:**

Input will consist of three parts, viz.

1. Size of the matrix (N)

2. The matrix itself (A = N * N)

3. Various operations on the matrix, one operation on each line. (Beginning either with A, Q or U)

-1 will represent end of input.

**Note:**

- Angle of rotation will always be multiples of 90 degrees only.
- All Update operations happen only on the initial matrix. After update all the previous rotations have to be applied on the updated matrix

**Output Format:**

For each Query operation print the element present at K-L location of the matrix in its current state.

**Constraints:**

**1<=N<=1000**

**1<=Aij<=1000**

**0<=S<=160000**

**1<=K, L<=N**

**1<=Q<=100000**

**Sample Input and Output**

SNo. | Input | Output |
---|---|---|

1 | 2 1 2 3 4 A 90 Q 1 1 Q 1 2 A 90 Q 1 1 U 1 1 6 Q 2 2 -1 | 3 1 4 6 |

1 2

3 4

After 90 degree rotation, the matrix will become

3 1

4 2

Now the element at A

_{11}is 3 and A_{12}is 1.
Again the angle of rotation is 90 degree, now after the rotation the matrix will become

4 3

2 1

Now the element at A

_{11}is 4.
As the next operation is

**Update**, update initial matrix i.e.
6 2

3 4

After updating, apply all the previous rotations (i.e. 180 = two 90 degree rotations).

The matrix will now become

4 3

2 6

Now A

_{22}is 6.*:*

**Note***Please do not use package and namespace in your code. For object oriented languages your code should be written in one class.*

*:*

**Note***Participants submitting solutions in C language should not use functions from*/ as these files do not exist in gcc

**Problem : Compiler Design - Limit the Method Instructions**

Raj is a newbie to the programming and while learning the programming language he came to know the following rules:

- Each program must start with '{' and end with '}'.

- Each program must contain only one main function. Main function must start with '<' and end with '>'.

- A program may or may not contain user defined function(s). There is no limitation on the number of user defined functions in the program. User defined function must start with '(' and end with ')'.

- Loops are allowed only inside the functions (this function can be either main function or user defined function(s)). Every loop must start with '{' and end with '}'.

- User defined function(s) are not allowed to be defined inside main function or other user defined function(s).

- Nested loops are allowed.

- Instructions can be anywhere inside the program.

- Number of instructions inside any user defined function must not be more than 100.

If any of the above conditions is not satisfied, then the program will generate compilation errors. Today Raj has written a few programs, but he is not sure about the correctness of the programs. Your task is to help him to find out whether his program will compile without any errors or not.

**Input Format:**

First line starts with

**T**, number of test cases. Each test case will contain a single line

**L**, where

**L**is a program written by Raj.

**Output Format:**

Print "No Compilation Errors" if there are no compilation errors, else print "Compilation Errors".

**Constraints:**

**1<=T<=100**

**L is a text and can be composed of any of the characters {, }, (, ), <, >and P, where P will represents the instruction.**

**L, comprised of characters mentioned above should be single spaced delimited.**

**Number of characters in the text, |L| < = 10000**

**Sample Input and Output**

SNo. | Input | Output |
---|---|---|

1 | 3 { < > ( P ) } { < { } > ( { } ) ) { ( { } ) } | No Compilation Errors Compilation Errors Compilation Errors |

*:*

**Note***Please do not use package and namespace in your code. For object oriented languages your code should be written in one class.*

*:*

**Note***Participants submitting solutions in C language should not use functions from*/ as these files do not exist in gcc