#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#define MAX_POINTS 12  // 起点 + 最多10个纸片 + 缓冲
#define INF INT_MAX
typedef struct 
{
    int x, y;
} Point;
int min(int a, int b) 
{
    return a < b ? a : b;
}
int manhattan(Point a, Point b) 
{
    return abs(a.x - b.x) + abs(a.y - b.y);
}
int main() {
    int T;
    scanf("%d", &T);
    while (T--) {
        int room_w, room_h;
        scanf("%d %d", &room_w, &room_h);
        Point start;
        scanf("%d %d", &start.x, &start.y);
        int n;
        scanf("%d", &n);
        Point points[MAX_POINTS];
        points[0] = start;
        for (int i = 1; i <= n; i++) {
            scanf("%d %d", &points[i].x, &points[i].y);
        }
        int N = n + 1;  // 总点数(起点 + 纸片)
        // 计算距离矩阵
        int dist[MAX_POINTS][MAX_POINTS];
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                dist[i][j] = manhattan(points[i], points[j]);
            }
        }
        int dp[1 << MAX_POINTS][MAX_POINTS];
        for (int mask = 0; mask < (1 << N); mask++) {
            for (int i = 0; i < N; i++) {
                dp[mask][i] = INF;
            }
        }
        dp[1][0] = 0;
        for (int mask = 1; mask < (1 << N); mask++) {
            for (int i = 0; i < N; i++) {
                if (dp[mask][i] == INF) continue;
                if (!(mask & (1 << i))) continue;
                
                for (int j = 0; j < N; j++) {
                    if (mask & (1 << j)) continue;
                    
                    int new_mask = mask | (1 << j);
                    int new_dist = dp[mask][i] + dist[i][j];
                    
                    if (new_dist < dp[new_mask][j]) {
                        dp[new_mask][j] = new_dist;
                    }
                }
            }
        }
        // 找到回到起点的最短路径
        int full_mask = (1 << N) - 1;
        int ans = INF;
        for (int i = 0; i < N; i++) {
            if (dp[full_mask][i] != INF) {
                int total = dp[full_mask][i] + dist[i][0];
                if (total < ans) {
                    ans = total;
                }
            }
        }
        printf("The shortest path has length %d\n", ans);
    }
    return 0;
}