#include <bits/stdc++.h>
#pragma GCC target("tune=native")
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int MOD = 1000000007;
int dp[1 << 24];
uint8_t sbit[24];
int x[24], y[24];
int pt[24], dt[24][24];
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int a, b;
  cin >> a >> b;
  int n;
  cin >> n;
  for (int i = (0); i < (n); i++) {
    cin >> x[i] >> y[i];
    x[i] -= a;
    y[i] -= b;
  }
  for (int i = (0); i < (n); i++) {
    pt[i] = x[i] * x[i] + y[i] * y[i];
    for (int j = (i + 1); j < (n); j++)
      dt[i][j] = (x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]);
  }
  dp[0] = 0;
  for (int mask = (1); mask < (1 << n); mask++) {
    int bes = 0x0fffffff, sbc = 0;
    for (int i = (0); i < (n); i++)
      if (mask & (1 << i)) {
        sbit[sbc++] = i;
        bes = min(bes, dp[mask ^ (1 << i)] + 2 * pt[i]);
      }
    if (sbc != 1)
      for (int i = (0); i < (sbc - 1); i++)
        for (int j = (i + 1); j < (sbc); j++)
          bes = min(bes, dp[mask ^ (1 << sbit[i]) ^ (1 << sbit[j])] +
                             pt[sbit[i]] + pt[sbit[j]] + dt[sbit[i]][sbit[j]]);
    dp[mask] = bes;
  }
  cout << dp[(1 << n) - 1] << endl;
  int mask = (1 << n) - 1;
  stack<pair<int, int>> at;
  while (mask) {
    int bes = 0x0fffffff, sbc = 0;
    int ba = -1, bb = 0;
    for (int i = (0); i < (n); i++)
      if (mask & (1 << i)) {
        sbit[sbc++] = i;
        int k = dp[mask ^ (1 << i)] + 2 * pt[i];
        if (k < bes) {
          bes = k;
          bb = i;
        }
      }
    if (sbc != 1)
      for (int i = (0); i < (sbc - 1); i++)
        for (int j = (i + 1); j < (sbc); j++) {
          int k = dp[mask ^ (1 << sbit[i]) ^ (1 << sbit[j])] + pt[sbit[i]] +
                  pt[sbit[j]] + dt[sbit[i]][sbit[j]];
          if (k < bes) {
            bes = k;
            ba = sbit[i];
            bb = sbit[j];
          }
        }
    at.push(make_pair(ba, bb));
    mask = mask ^ (1 << bb);
    if (ba != -1) mask = mask ^ (1 << ba);
  }
  cout << 0;
  while (at.size()) {
    auto v = at.top();
    at.pop();
    if (v.first != -1)
      cout << ' ' << v.first + 1 << ' ' << v.second + 1;
    else
      cout << ' ' << v.second + 1;
    cout << ' ' << 0;
  }
  cout << endl;
}
