import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.IOException;

public class A870 {
	public static void main(String[] args) throws IOException {
		// set up IO stream
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter pw = new PrintWriter(System.out);

		// input length of list1 and list2 and initializes them
		String[] lengths = br.readLine().split(" ");
		int l1 = Integer.parseInt(lengths[0]);
		int l2 = Integer.parseInt(lengths[1]);
		int[] list1 = new int[l1];
		int[] list2 = new int[l2];

		// assign input to lists
		String[] input = br.readLine().split(" ");
		for(int i=0; i<l1; i++) {
			list1[i] = Integer.parseInt(input[i]);
		}
		input = br.readLine().split(" ");
		for(int i=0; i<l2; i++) {
			list2[i] = Integer.parseInt(input[i]);
		}

		// find min from list1
		int min1 = list1[0];
		for(int i=1; i<l1; i++) {
			if(list1[i] < min1) {
				min1 = list1[i];
			}
		}

		// find min from list2
		int min2 = list2[0];
		for(int i=1; i<l2; i++) {
			if(list2[i] < min2) {
				min2 = list2[i];
			}
		}

		if(min1 == min2) {
			pw.println(min1);
		} else {
			pw.println(min1 + "" + min2);
		}

		// for debugging purpose
		// pw.println("============");
		// pw.println(l1 + " " + l2);
		// for(int i=0; i<l1; i++) {
		// 	pw.print(list1[i] + " ");
		// }
		// pw.println();
		// for(int i=0; i<l2; i++) {
		// 	pw.print(list2[i] + " ");
		// }
		// pw.println("\n============");
		// pw.println(min1 + " " + min2);

		// mergeSort(list1);
		// mergeSort(list2);

		// // for debugging purpose
		// pw.println("============");
		// pw.println(l1 + " " + l2);
		// for(int i=0; i<l1; i++) {
		// 	pw.print(list1[i] + " ");
		// }
		// pw.println();
		// for(int i=0; i<l2; i++) {
		// 	pw.print(list2[i] + " ");
		// }

		pw.flush();
	}

	// public static void mergeSort(int[] x){
	// 	mergeSort(x, new int[x.length], 0, x.length-1);
	// }

	// public static void mergeSort(int[] x, int[] temp, int leftStart, int rightEnd){
	// 	if(leftStart >= rightEnd){
	// 		return;
	// 	}

	// 	int mid = (leftStart + rightEnd) / 2;
	// 	mergeSort(x, temp, leftStart, mid);
	// 	mergeSort(x, temp, mid+1, rightEnd);
	// 	merge(x, temp, leftStart, rightEnd);
	// }

	// public static void merge(int[] x, int[] temp, int leftStart, int rightEnd){
	// 	int leftEnd = (leftStart + rightEnd) / 2;
	// 	int rightStart = leftEnd + 1;
	// 	int size = rightEnd - leftStart + 1;

	// 	int left = leftStart;
	// 	int right = rightStart;
	// 	int index = leftStart;

	// 	while(left <= leftEnd && right <= rightEnd){
	// 		if(x[left] < x[right]){
	// 			temp[index] = x[left];
	// 			left++;
	// 		} else{
	// 			temp[index] = x[right];
	// 			right++;
	// 		}
	// 		index++;
	// 	}

	// 	System.arraycopy(x, left, temp, index, leftEnd-left+1);
	// 	System.arraycopy(x, right, temp, index, rightEnd-right+1);
	// 	System.arraycopy(temp, leftStart, x, leftStart, size);
	// }
}