#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

struct napad{
    int id1;
    int id2;
    int d;
};

struct tacka{
    int x;
    int y;
    int id;
};

int main()
{
    int n,m,k,i,x1,y1,a,j,indeks,maksimum,minimum;
    maksimum=-9999999999;
    vector<tacka>t1;
    vector<tacka>t2;
    vector<napad>napadi;
    vector<napad>v;
    cin>>n;
    cin>>m;
    cin>>k;
    for(i=0;i<n;i++){
        cin>>x1;
        cin>>y1;
        tacka a;
        a.x=x1;
        a.y=y1;
        a.id=i+1;
        t1.push_back(a);
    }
    for(i=0;i<m;i++){
        cin>>x1;
        cin>>y1;
        tacka a;
        a.x=x1;
        a.y=y1;
        a.id=i+1;
        t2.push_back(a);
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            napad b;
            b.id1=i+1;
            b.id2=j+1;
            b.d=sqrt(pow(t1[i].x+t2[j].x,2)+(t1[i].y+t2[j].y,2));
            napadi.push_back(b);
        }
    }
    for(i=0;i<k;i++){
            minimum=999999999;
        for(i=0;i<napadi.size();i++){
            if(napadi[i].d<minimum){
                minimum=napadi[i];
                indeks=i;
                if(napadi[i].d>maksimum){
                    maksimum=napadi[i].d;
                }
            }
        }
        v.push_back(napadi[indeks]);
        for(i=0;i<napadi.size();i++){
            if(napadi[i].id1==v[indeks].id1){
                napadi.erase(napadi.begin()+i);
            }
        }
        for(i=0;i<napadi.size();i++){
            if(napadi[i].id2==v[indeks].id2){
                napadi.erase(napadi.begin()+i);
            }
        }
    }

    cout<<maksimum<<"/n";
    for(i=0;i<v.size();i++){
        cout<<v[i].id1<<" "<<v[i].id2<<"/";
    }
}