#include <bits/stdc++.h>
#define pii pair<int,int>
#define fi first
#define se second

using namespace std;

const int INF=numeric_limits<int>::max();


int main()
{
    int n,m,k;
    cin>>n>>m>>k;
    vector<pii> v1(n),v2(m);
    bool obr=false;
    for(int i=0;i<n;i++){
        cin>>v1[i].fi>>v1[i].se;
    }
    for(int i=0;i<m;i++){
        cin>>v2[i].fi>>v2[i].se;
    }
    for(int i=1;i<n;i++)if(v1[i].se!=v1[i-1].se)obr=true;
    for(int i=1;i<m;i++)if(v2[i].se!=v2[i-1].se)obr=true;
    if(obr){
        for(int i=0;i<n;i++)swap(v1[i].fi,v1[i].se);
        for(int i=0;i<m;i++)swap(v2[i].fi,v2[i].se);
    }
    vector<int> vn(n);
    for(int i=0;i<n;i++)vn[i]=v1[i].fi;
    vector<int> vm(m);
    for(int i=0;i<m;i++)vm[i]=v2[i].fi;
    int ans=INF;
    int ansm=-1;
    int ansn=-1;
    for(int i=0;i<n;i++){
        auto it=lower_bound(vm.begin(),vm.end(),vn[i]);
        auto it2=prev(it,1);
        if(it!=vm.end()){
            if(abs((*it)-vn[i])<ans){}
            ans=abs((*it)-vn[i]);
            ansn=i;
            ansm=distance(vm.begin(),it);
        }
        if(it!=vm.begin()){
            if(abs((*it2)-vn[i])<ans){}
            ans=abs((*it2)-vn[i]);
            ansn=i;
            ansm=distance(vm.begin(),it2);
        }
    }
    cout<<(long long)ans*(long long)ans+(long long)(v1[0].se-v2[0].se)*(long long)(v1[0].se-v2[0].se)<<endl;
    cout<<ansn+1<<' '<<ansm+1<<endl;
    /*
    sort(vm.begin(),vm.end());
    sort(vn.begin(),vn.end());
    vector<vector<int>> dis(n);
    for(int i=0;i<n;i++)dis[i].resize(m);
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++)dis[i][j]=abs(vn[i]-vm[j]);
    }
    int ans=INF;
    int ansm=-1;
    int ansn=-1;
    for(int p1=0;p1<n;p1++){
        priority_queue<int> pq;
        for(int j=0;j<m && p1+j<n;j++){
            if(pq.size()<k)pq.push(dis[p1+j][j]);
            if (pq.size()<k)continue;
            if(pq.top<ans){
                ans=pq.top();
                ansn=p1+j;
                ansm=j;
            }

        }
    }
    */
    return 0;
}