We have three stones at points (0, 0), (1,0), and (0,1) on a two-dimensional plane.
These three stones are said to form an L when they satisfy the following conditions:
 - Each of the stones is at integer coordinates.
 - Each of the stones is adjacent to another stone. (That is, for each stone, there is another stone whose distance from that stone is 1.)
 - The three stones do not lie on the same line.
Particularly, the initial arrangement of the stone - (0, 0), (1,0), and (0,1) - forms an L.
You can do the following operation any number of times: choose one of the stones and move it to any position. However, after each operation, the stones must form an L.
You want to do as few operations as possible to put stones at points (ax, ay), (bx, by), and (cx, cy). How many operations do you need to do this?
It is guaranteed that the desired arrangement of stones - (ax, ay), (bx, by), and (cx, cy) - forms an L. Under this condition, it is always possible to achieve the objective with a finite number of operations.
You will be given T cases of this problem. Solve each of them.

-----Notes-----
We assume that the three stones are indistinguishable. For example, the stone that is initially at point (0,0) may be at any of the points (ax, ay), (bx, by), and (cx, cy) in the end.

-----Constraints-----
 - 1 \leq T \leq 10^3
 - |ax|,|ay|,|bx|,|by|,|cx|,|cy| \leq 10^9
 - The desired arrangement of stones - (ax, ay), (bx, by), and (cx, cy) - forms an L.

-----Input-----
Input is given from Standard Input in the following format:
T
\text{case}_1
\vdots
\text{case}_T

Each case is in the following format:
ax ay bx by cx cy

-----Output-----
Print T values. The i-th value should be the minimum number of operations for \text{case}_i.

-----Sample Input-----
1
3 2 2 2 2 1

-----Sample Output-----
4

Let us use # to represent a stone.
You can move the stones to the specified positions with four operations, as follows:
....    ....    ....    ..#.    ..##
#... -> ##.. -> .##. -> .##. -> ..#.
##..    .#..    .#..    ....    ....

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = 'T = int(input())\n\ndef calc(ax,ay,bx,by,cx,cy):\n    GL = min(ax,bx,cx)\n    GU = min(ay,by,cy)\n    #X軸合わせを優先\n    xcnt = {}\n    for x in (ax,bx,cx):\n        xcnt[x] = xcnt.get(x,0)+1\n    ycnt = {}\n    for y in (ay,by,cy):\n        ycnt[y] = ycnt.get(y,0)+1\n\n    if GL==0 and GU==0:\n        if xcnt[0]==2 and ycnt[0]==2:\n            ret = 0\n        else:\n            ret = 1\n    else:\n        #姿勢を調整\n        ret = int(GL>0)\n        #斜めに動く\n        ret += min(abs(GL),abs(GU))*2\n        if abs(GU)>abs(GL):\n            ret += 1\n        ret += max(0,abs(abs(GU)-abs(GL))*2-1)\n        #姿勢を調整\n        if abs(GU)>=abs(GL):\n            #最後に上下に動いた\n            if GU>0:\n                #最後に下に動いた\n                if ycnt[GU] == 1:\n                    ret += 1\n            else:\n                #最後に上に動いた\n                if ycnt[GU] == 2:\n                    ret += 1\n        else:\n            #最後に左右に動いた\n            if GL>0:\n                if xcnt[GL] == 1:\n                    ret += 1\n            else:\n                if xcnt[GL] == 2:\n                    ret += 1\n    return ret\n\nfor _ in range(T):\n    ax,ay,bx,by,cx,cy = map(int,input().split())\n\n    ans0 = calc(ax,ay,bx,by,cx,cy)\n    ans1 = calc(ay,ax,by,bx,cy,cx)\n\n    ans = min(ans0,ans1)\n    print(ans)'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 13019