You are given two lists of non-zero digits.

Let's call an integer pretty if its (base 10) representation has at least one digit from the first list and at least one digit from the second list. What is the smallest positive pretty integer?

Input

The first line contains two integers n and m (1 ≤ n, m ≤ 9) — the lengths of the first and the second lists, respectively.

The second line contains n distinct digits a1, a2, ..., an (1 ≤ ai ≤ 9) — the elements of the first list.

The third line contains m distinct digits b1, b2, ..., bm (1 ≤ bi ≤ 9) — the elements of the second list.

Output

Print the smallest pretty integer.

Examples

Input

2 3
4 2
5 7 6


Output

25


Input

8 8
1 2 3 4 5 6 7 8
8 7 6 5 4 3 2 1


Output

1

Note

In the first example 25, 46, 24567 are pretty, as well as many other integers. The smallest among them is 25. 42 and 24 are not pretty because they don't have digits from the second list.

In the second example all integers that have at least one digit different from 9 are pretty. It's obvious that the smallest among them is 1, because it's the smallest positive integer.
import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.io.*;
import java.util.Arrays;
 
 /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
 
///**
 //*
  //* @author aman_robotics
// */
public class like_cs01
{
    
    public static void main(String [] args)throws IOException
    {
        FastReader in=new FastReader(System.in);
        int a=in.nextInt();
        int b=in.nextInt();
        int a1[]=new int[a];
        int b1[]=new int[b];
        for(int i=0;i<a;i++)
            a1[i]=in.nextInt();
        for(int i=0;i<b;i++)
            b1[i]=in.nextInt();
        Arrays.sort(a1);
        Arrays.sort(b1);
        int x=Math.min(a1.length,b1.length);
        //int flag=0;
        if(x==a1.length){
            int flag1=0;
            for(int i=0;i<a1.length;i++){
                int flag=0;
                for(int j=0;j<b1.length;j++){
                    if(a1[i]==b1[j]){
                        System.out.println(a1[i]);
                        flag=1;
                        flag1=1;
                        break;
                    }
                }
                if(flag==1)
                    break;
            }
            if(flag1==0){
                System.out.print(Math.min(a1[0],b1[0]));
                System.out.print(Math.max(a1[0],b1[0]));
            }
        }
        else{
            int flag1=0;
            for(int i=0;i<b1.length;i++){
                int flag=0;
                for(int j=0;j<a1.length;j++){
                    if(b1[i]==a1[j]){
                        System.out.println(a1[j]);
                        flag=1;
                        flag1=1;
                        break;
                    }
                }
                if(flag==1)
                    break;
            }
            if(flag1==0){
                System.out.print(Math.min(a1[0],b1[0]));
                System.out.print(Math.max(a1[0],b1[0]));
            }
        }
    }


        
    static class FastReader{
 
        byte[] buf = new byte[2048];
        int index, total;
        InputStream in;
 
        FastReader(InputStream is) {
            in = is;
        }
 
        int scan() throws IOException {
            if (index >= total) {
                index = 0;
                total = in.read(buf);
                if (total <= 0) {
                    return -1;
                }
            }
            return buf[index++];
        }
 
        String next() throws IOException {
            int c;
            for (c = scan(); c <= 32; c = scan());
            StringBuilder sb = new StringBuilder();
            for (; c > 32; c = scan()) {
                sb.append((char) c);
            }
            return sb.toString();
        }
 
        int nextInt() throws IOException {
            int c, val = 0;
            for (c = scan(); c <= 32; c = scan());
            boolean neg = c == '-';
            if (c == '-' || c == '+') {
                c = scan();
            }
            for (; c >= '0' && c <= '9'; c = scan()) {
                val = (val << 3) + (val << 1) + (c & 15);
            }
            return neg ? -val : val;
        }
 
        long nextLong() throws IOException {
            int c;
            long val = 0;
            for (c = scan(); c <= 32; c = scan());
            boolean neg = c == '-';
            if (c == '-' || c == '+') {
                c = scan();
            }
            for (; c >= '0' && c <= '9'; c = scan()) {
                val = (val << 3) + (val << 1) + (c & 15);
            }
            return neg ? -val : val;
        }
    }
}
 
