#include<bits/stdc++.h>
using namespace std;
int x,y,n,a[25],b[25],f[1<<24],inf=3e4+7,t;
vector<int>ob[1<<24];
int dis(int a,int b,int x,int y){
return (x-a)*(x-a)+(y-b)*(y-b);
}
int main()
{
cin>>x>>y;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int i=0;i<(1<<n);i++){
f[i]=inf;
ob[i].push_back(0);
}
for(int i=1;i<=n;i++){
t=1<<(i-1);
f[t]=dis(a[i],b[i],x,y)+dis(x,y,a[i],b[i]);
ob[t].push_back(i);
ob[t].push_back(0);
for(int j=i+1;j<=n;j++){
f[t+(1<<(j-1))]=0;
f[t+(1<<(j-1))]+=dis(a[i],b[i],a[j],b[j]);
f[t+(1<<(j-1))]+=dis(a[i],b[i],x,y);
f[t+(1<<(j-1))]+=dis(a[j],b[j],x,y);
ob[t+(1<<(j-1))].push_back(i);
ob[t+(1<<(j-1))].push_back(j);
ob[t+(1<<(j-1))].push_back(0);
}
}
for(int i=1;i<(1<<n);i++){
for(int j=1;j<=n;j++){
if(i>>(j-1)&1){
continue;
}
for(int k=j+1;k<=n;k++){
t=(1<<(j-1))+(1<<(k-1));
if((i>>(j-1)&1)){
continue;
}
if((i>>(k-1)&1)){
continue;
}
if(f[i]+f[((1<<(j-1)))+(1<<(k-1))]<f[i+(((1<<(j-1)))+((1<<(k-1))))]){
ob[i+((1<<(j-1))+(1<<(k-1)))]=ob[i];
ob[i+((1<<(j-1))+(1<<(k-1)))].push_back(j);
ob[i+((1<<(j-1))+(1<<(k-1)))].push_back(k);
ob[i+((1<<(j-1))+(1<<(k-1)))].push_back(0);
f[i+((1<<(j-1))+(1<<(k-1)))]=f[i]+f[(1<<(j-1))+(1<<(k-1))];
}
}
if((i>>(j-1)&1)){
continue;
}
if(f[i]+f[1<<(j-1)]<f[i+((1<<(j-1)))]){
ob[i+((1<<(j-1)))]=ob[i];
ob[i+((1<<(j-1)))].push_back(j);
ob[i+((1<<(j-1)))].push_back(0);
f[i+((1<<(j-1)))]=f[i]+f[1<<(j-1)];
}
}
}
cout<<f[(1<<n)-1]<<endl;
int g=(1<<n)-1;
for(int i=0;i<(int)ob[g].size();i++){
cout<<ob[(1<<n)-1][i]<<" ";
}
return 0;
}