3 10
2 3 1
1 1
3 3
3 3
3 2
1 1
2 2
3 1
1 3
2 1
3 3
 7 20
6 2 5 7 3 1 4
7 7
1 1
2 2
6 1
4 4
2 2
2 2
6 6
3 5
7 4
1 6
4 4
6 1
1 1
3 3
5 3
3 5
5 3
2 2
4 4
 4 20
4 2 3 1
2 2
1 4
2 2
1 1
3 3
3 3
1 4
3 3
2 2
3 3
4 1
2 2
1 4
3 3
4 1
1 1
3 3
2 2
2 2
4 4
 9 6
9 2 3 4 5 6 7 8 1
1 4
4 7
2 5
5 8
3 6
6 9
 7 20
5 6 2 1 7 4 3
1 4
5 4
7 5
7 4
2 4
6 5
1 5
3 3
1 5
6 2
7 3
4 1
6 4
7 5
7 3
1 5
1 3
6 6
5 2
5 7
 3 1
3 2 1
1 2
 8 20
8 4 7 2 6 5 3 1
6 6
2 4
7 3
4 2
3 3
6 5
6 5
8 8
3 7
6 6
7 3
4 4
1 8
1 8
3 7
8 8
6 6
2 4
8 8
4 2
 3 2
1 3 2
1 3
3 1
 20 20
4 12 7 1 16 19 3 10 14 8 13 2 11 9 20 5 18 17 6 15
9 14
3 3
8 10
7 3
20 20
5 16
13 11
6 19
6 6
12 2
12 2
13 11
18 18
18 17
9 14
8 8
20 15
4 4
16 16
4 1
 9 20
6 7 9 1 3 4 8 2 5
8 2
2 7
1 6
6 1
6 1
3 3
9 5
8 2
8 2
9 5
4 1
5 5
9 3
9 3
6 6
7 8
4 6
7 8
1 1
8 2
 5 20
2 4 1 5 3
1 4
3 1
4 5
1 1
4 2
3 2
4 4
1 2
4 5
5 5
5 5
2 2
2 5
5 3
5 5
3 3
5 1
2 2
4 5
1 5
 4 20
3 4 1 2
2 4
4 4
3 1
3 1
4 4
3 3
4 4
1 1
4 4
4 2
3 3
1 3
1 3
2 2
1 3
1 1
3 1
2 4
4 4
2 4
 6 20
5 3 2 4 1 6
3 2
5 5
3 2
4 4
4 4
4 4
5 1
3 2
3 2
1 1
6 6
6 6
6 6
4 4
6 6
1 5
1 1
5 1
2 2
2 3
 83 8
54 3 52 12 61 36 65 62 69 49 47 77 31 15 21 14 73 29 6 26 37 17 81 75 43 30 58 76 16 8 11 5 27 35 7 66 50 67 2 39 45 28 60 71 38 82 53 1 42 13 44 72 22 4 9 25 19 57 10 70 18 68 32 34 20 80 23 79 24 63 64 51 59 41 74 48 40 33 46 83 55 56 78
48 80
1 8
71 54
15 59
72 46
36 9
64 29
55 58
 1 1
1
1 1
 5 20
3 4 1 5 2
2 4
3 1
2 2
4 5
4 5
5 2
1 1
2 4
3 3
4 2
3 1
1 1
5 2
1 3
3 1
4 2
1 3
3 3
4 2
4 2
 6 20
4 6 1 3 2 5
2 2
6 5
3 4
3 4
5 6
3 3
5 5
6 6
4 3
2 2
2 2
5 2
3 4
1 4
5 2
4 3
2 5
1 4
3 1
4 3
 2 10
1 2
1 1
2 2
2 2
1 1
1 1
2 2
2 2
1 1
2 2
1 1
 5 3
5 2 3 4 1
2 4
1 4
3 4
 4 1
4 3 1 2
3 4
 3 1
1 3 2
1 2
 2 10
2 1
2 1
1 2
1 1
2 1
1 1
2 1
1 1
1 1
2 1
2 1
 3 1
2 3 1
1 1
 8 1
3 4 1 2 7 8 5 6
3 4
 3 10
1 2 3
2 2
1 1
2 2
3 3
1 1
3 3
3 3
3 3
2 2
1 1

3 2 1 
 6 2 5 7 3 1 4 
 4 2 3 1 
 9 8 6 7 5 3 4 2 1 
 7 6 5 4 3 2 1 
 3 2 1 
 8 4 7 2 6 5 3 1 
 2 3 1 
 4 12 7 1 16 19 3 10 14 8 13 2 11 9 20 5 18 17 6 15 
 6 8 9 4 5 1 7 2 3 
 5 4 3 2 1 
 3 4 1 2 
 5 3 2 4 1 6 
 62 3 52 12 61 36 65 54 69 49 47 77 31 15 21 14 73 29 6 26 37 17 81 75 43 30 58 76 34 8 11 5 27 35 7 66 50 67 2 39 45 28 60 71 38 82 53 83 42 13 44 72 22 64 57 25 19 9 10 70 18 68 32 16 20 80 23 79 24 63 4 51 59 41 74 48 40 33 46 1 55 56 78 
 1 
 3 5 1 4 2 
 4 6 3 1 5 2 
 1 2 
 5 4 3 2 1 
 4 3 2 1 
 3 1 2 
 2 1 
 2 3 1 
 3 4 2 1 7 8 5 6 
 1 2 3 

import java.io.*;
import java.lang.*;
import java.util.*;

// Sachin_2961 submission //
public class CodeforcesA {

    ArrayList<Integer>[]adj;
    boolean[]vis;
    int[]ar;
    public void dfs(int u,ArrayList<Integer>pos,ArrayList<Integer>value){
        vis[u] = true;
        pos.add(u);value.add(ar[u]);
        for(int i:adj[u]){
            if(!vis[i]){
                dfs(i,pos,value);
            }
        }
    }
    public void solve() {
        int n = fs.nInt(), m = fs.nInt();
        ar = new int[n+1];
        for(int i=1;i<=n;i++){
            ar[i] = fs.nInt();
        }
        adj = new ArrayList[n+1];
        for(int i=0;i<=n;i++){
            adj[i] = new ArrayList<>();
        }
        for(int i=0;i<m;i++){
            int u = fs.nInt(),v = fs.nInt();
            adj[u].add(v);adj[v].add(u);
        }
        vis = new boolean[n+1];
        int[]ans = new int[n+1];
        for(int i=1;i<=n;i++){
            if(vis[i])continue;
            ArrayList<Integer>pos = new ArrayList<>();
            ArrayList<Integer>value = new ArrayList<>();
            dfs(i,pos,value);
            value.sort(Collections.reverseOrder());
            for(int j=0;j<pos.size();j++)
                ans[pos.get(j)] = value.get(j);
        }
        for(int i=1;i<=n;i++)
            out.print(ans[i]+" ");
        out.println();
    }
    static boolean multipleTestCase = false; static FastScanner fs; static PrintWriter out;
    public void run(){
        fs = new FastScanner();
        out = new PrintWriter(System.out);
        int tc = (multipleTestCase)?fs.nInt():1;
        while (tc-->0)solve();
        out.flush();
        out.close();
    }
    public static void main(String[]args){
        try{
            new CodeforcesA().run();
        }catch (Exception e){
            e.printStackTrace();
        }

    }
    static class FastScanner {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st=new StringTokenizer("");
        String n() {
            while (!st.hasMoreTokens())
                try {
                    st=new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            return st.nextToken();
        }
        String Line()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        }
        int nInt() {return Integer.parseInt(n()); }
        long nLong() {return Long.parseLong(n());}
        int[]aI(int n){
            int[]ar = new int[n];
            for(int i=0;i<n;i++)
                ar[i] = nInt();
            return ar;
        }
    }
}