#include <bits/stdc++.h>
using namespace std;
const int INF = 0x7f7f7f7f;
inline int sqr(int x) { return x * x; }
int n;
int x[30], y[30], ox, oy;
int d[30][30];
int dp[1 << 24], pre[1 << 24];
int dfs(int st) {
  int& ret = dp[st];
  int& fa = pre[st];
  if (-1 != ret) return ret;
  ret = INF;
  for (int i = 0; i < n; ++i)
    if (st >> i & 1) {
      int s1 = st ^ (1 << i);
      int r1 = dfs(s1) + d[i][n] * 2;
      if (r1 < ret) {
        ret = r1;
        fa = s1;
      }
      for (int j = i + 1; j < n; ++j)
        if (st >> j & 1) {
          int s2 = s1 ^ (1 << j);
          int r2 = dfs(s2) + d[i][n] + d[n][j] + d[j][i];
          if (r2 < ret) {
            ret = r2;
            fa = s2;
          }
        }
      break;
    }
  return ret;
}
int main() {
  scanf("%d %d", &ox, &oy);
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) scanf("%d %d", &x[i], &y[i]);
  x[n] = ox;
  y[n] = oy;
  for (int i = 0; i <= n; ++i)
    for (int j = 0; j <= n; ++j) d[i][j] = sqr(x[i] - x[j]) + sqr(y[i] - y[j]);
  memset(dp, -1, sizeof(dp));
  dp[0] = 0;
  int st = (1 << n) - 1;
  printf("%d\n", dfs(st));
  for (; st; st = pre[st]) {
    printf("0 ");
    int ss = st ^ pre[st];
    for (int i = 0; i < n; ++i)
      if (ss >> i & 1) printf("%d ", i + 1);
  }
  puts("0");
  return 0;
}
