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])
    }
}