#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
    int m, n;
    cin >> m >> n;
    
    if (m < 0 || n < 0) {
        cout << "Invalid input";
        return 0;
    }
    
    vector<int> arr1(m), arr(n);
    
    for (int i = 0; i < m; i++)
    cin >> arr1[i];
    
    for (int i = 0; i < n; i++)
    cin >> arr2[i];
    
    vector<int> merged;
    merged.insert(merged.end(), arr1.begin(), arr1.end());
    merged.insert(merged.end(), arr2.begin(), arr2.end());
    
    sort(merged.begin(), merged.end());
    
    int size = merged.size();
    
    if (size % 2 == 1) {
        cout << merged[size / 2];
    } else {
        double median = (merged[size/2 - 1] + merged[size/2]) / 2.0;
        cout << median;
    }
    return 0;
}