import java.util.*;

public class Main {
    public static class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
            next = null;
        }
    }

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        // 边界处理:如果任一链表为空,不可能有交点
        if (headA == null || headB == null) {
            return null;
        }

        // 初始化双指针,分别指向两个链表的头部
        ListNode pA = headA;
        ListNode pB = headB;

        // 循环直到两个指针相遇
        // 相遇情况有两种:1. 指向同一个交点节点 2. 都指向null(无交点)
        while (pA != pB) {
            // 当pA到达A链表末尾时,转向B链表头部继续遍历
            // 否则,pA向后移动一个节点
            pA = (pA == null) ? headB : pA.next;

            // 当pB到达B链表末尾时,转向A链表头部继续遍历
            // 否则,pB向后移动一个节点
            pB = (pB == null) ? headA : pB.next;
        }

        // 返回相遇点(可能是交点或null)
        return pA;
    }




























    //你不需要关心主函数的内容!
    public static void main(String[] args) {
        Main solution = new Main();
        Scanner scanner = new Scanner(System.in);

        // 读入数据
        int lenA = scanner.nextInt();
        int lenB = scanner.nextInt();
        int commonLen = scanner.nextInt();

        // 构建链表
        ArrayList<ListNode> nodesA = new ArrayList<>();
        ArrayList<ListNode> nodesB = new ArrayList<>();
        ArrayList<ListNode> nodesCommon = new ArrayList<>();

        // 读入并创建链表A的独立部分
        for (int i = 0; i < lenA - commonLen; i++) {
            int val = scanner.nextInt();
            nodesA.add(new ListNode(val));
            if (i > 0) nodesA.get(i - 1).next = nodesA.get(i);
        }

        // 读入并创建链表B的独立部分
        for (int i = 0; i < lenB - commonLen; i++) {
            int val = scanner.nextInt();
            nodesB.add(new ListNode(val));
            if (i > 0) nodesB.get(i - 1).next = nodesB.get(i);
        }

        // 读入并创建公共部分
        for (int i = 0; i < commonLen; i++) {
            int val = scanner.nextInt();
            nodesCommon.add(new ListNode(val));
            if (i > 0) nodesCommon.get(i - 1).next = nodesCommon.get(i);
        }

        // 连接链表
        ListNode headA = null;
        ListNode headB = null;

        if (lenA - commonLen > 0) {
            headA = nodesA.get(0);
            if (commonLen > 0) nodesA.get(nodesA.size() - 1).next = nodesCommon.get(0);
        } else if (commonLen > 0) {
            headA = nodesCommon.get(0);
        }

        if (lenB - commonLen > 0) {
            headB = nodesB.get(0);
            if (commonLen > 0) nodesB.get(nodesB.size() - 1).next = nodesCommon.get(0);
        } else if (commonLen > 0) {
            headB = nodesCommon.get(0);
        }

        // 调用函数获取结果
        ListNode result = solution.getIntersectionNode(headA, headB);

        // 输出结果
        if (result == null) {
            System.out.println("null");
        } else {
            System.out.println(result.val);
        }

        scanner.close();
    }
}