编程题
马走日
## 题目描述
在中国象棋里,马的走棋要遵循“马走日”的规则。在本题中,给定棋子马的起始位置,以及一个目标位置,判定该棋子是否能走到该位置,如果能走到,最少步数是多少。(假设棋盘上只有一个棋子马,没有其他棋子)
如下图所示,中国象棋的棋盘为10行、9列,棋盘上的一个位置可以用行坐标和列坐标唯一地表示,例如下图中黑马所在的初始位置为(1,2)。

## 输入描述
输入文件中包含多个测试数据。每个测试数据为4个整数,si sj di dj,前两个整数为马的初始位置,后两个整数为目标位置,si和di的范围是[1,10],sj和dj的范围是[1,9]。最后一行为4个0,代表输入结束。测试数据保证初始位置和目标位置不会是同一个位置。
## 输出描述
对每个测试数据,如果能达到目标位置,输出最少步数;如果不能达到,则输出-1。
## 样例输入
```txt
1 2 8 9
1 8 2 4
0 0 0 0
```
## 样例输出
```txt
6
3
```