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 = 'def get_center(ps):\n    xs, ys = list(zip(*ps))\n    xs, ys = list(xs), list(ys)\n    xs.sort()\n    ys.sort()\n    return xs[1], ys[1]\n    \n\ndef get_shape(ps):\n    """\n    0: #.  1: ##  2: .#  3: ##\n       ##     #.     ##     .#\n    """\n    xs, ys = list(zip(*ps))\n    xs, ys = list(xs), list(ys)\n    xs.sort()\n    ys.sort()\n    if xs[0] == xs[1] and ys[0] == ys[1]:\n        return 0\n    elif xs[0] == xs[1] and ys[1] == ys[2]:\n        return 1\n    elif xs[1] == xs[2] and ys[0] == ys[1]:\n        return 2\n    else:\n        return 3\n\n    \nt = int(input())\n\n\nfor _ in range(t):\n    x1, y1, x2, y2, x3, y3 = map(int, input().split())\n    ps = [(x1, y1), (x2, y2), (x3, y3)]\n    \n    cx, cy = get_center(ps)\n    shape = get_shape(ps)\n\n    if cx == 0 and cy == 0:\n        if shape == 0: print(0)\n        elif shape == 1: print(1)\n        elif shape == 2: print(1)\n        else: print(2)\n    elif cx == 1 and cy == 1:\n        if shape == 0: print(3)\n        elif shape == 1: print(2)\n        elif shape == 2: print(2)\n        else: print(1)\n    elif cx == cy:\n        if cx > 0:\n            if shape == 0: print(2 * cx + 1)\n            else: print(2 * cx)\n        else:\n            if shape == 3: print(2 - 2 * cx)\n            else: print(1 - 2 * cx)\n    else:\n        if abs(cx) > abs(cy) and cx > 0:\n            if shape == 0 or shape == 1: print(cx * 2)\n            else: print(cx * 2 - 1)\n        elif abs(cx) >= abs(cy) and cx < 0:\n            if shape == 0 or shape == 1: print(-cx * 2)\n            else: print(-cx * 2 + 1)\n        elif abs(cx) < abs(cy) and cy > 0:\n            if shape == 0 or shape == 2: print(cy * 2)\n            else: print(cy * 2 - 1)\n        else:\n            if shape == 0 or shape == 2: print(-cy * 2)\n            else: print(-cy * 2 + 1)'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 14345