IITKWPCI - Find Lexicographically Smallest Permutation

You are given n numbers a1, a2, ... an. You have to permute the numbers in such a way that resulting permutation should be lexicographically smallest . But there is a problem, you can not swap every pair of numbers. You can only swap the position i and j if they are good position. You will be given m pairs of i and j's which will denote good positions.

So complying to restrictions posed here, find the lexicographically smallest permutation of a1, a2 ... an.

Definition:  (a1, a2 ... an) is lexicographically smaller than (b1, b2 ... bn) if first index i where ai and bi differs, ai < bi satisfies.

eg. (1, 2, 3, 4) is smaller than (2, 1, 3, 4)

Input

T : number of test cases (T <= 10)

Next Line will contain n and m. (1 <= n <= 10^3 and 0 <= m <= min (n * (n - 1) / 2, 10^5).

Next Line will contains a1, a2, ... an. (a[i] >= 1 && a[i] <=10^6)

For next m lines, each line will contain i, j separated by space which will denote that you can swap ai and aj.

Output

For each test case, output n numbers representing the permutation of a1, a2 ... an according to problem statement.

Example

Input:
2
3 1
3 2 1
2 3
4 2
2 4 3 1
1 3
3 4
Output: 3 1 2
1 4 2 3

Added by:praveen123
Date:2013-08-05
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM32-GCC ASM64 MAWK BC C-CLANG NCSHARP CPP14 CPP14-CLANG COBOL COFFEE D-CLANG D-DMD DART ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG PYPY PYPY3 R RACKET RUST CHICKEN SQLITE SWIFT UNLAMBDA VB.NET
Resource:IITK ACA CSE online judge

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.