package main
import (
"fmt"
)
type Node struct{
value, step int
}
var result [301]int // 存储10到其他数值所需的操作次数
func BFS() { // 计算10到其他数值所需的操作次数
for i:=0;i<=300;i++{
result[i] = -1
}
queue := []Node{{10,0}}
result[10]=0
var cur Node
var dist []int
for len(queue) > 0{
cur = queue[0]
queue = queue[1:]
dist = []int{
cur.value-1,cur.value+1,
cur.value+100,cur.value-100,
cur.value+10, cur.value-10,
10, 300,
}
for _, d := range dist {
if d < 10 || d >300 || result[d] != -1{
continue
}
result[d] = cur.step + 1
queue = append(queue, Node{d, cur.step+1})
}
}
}
func main() {
var a, b, c, d int
var t int
fmt.Scanf("%d", &t)
BFS()
for t >0 {
t--
fmt.Scanf("%d %d %d %d", &a, &b, &c, &d)
fmt.Println(result[a]+result[b]+result[c]+result[d])
}
}