Gửi bài giải

Điểm: 5,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++

Tí rất thích chơi cờ vua và thường hay sáng tạo ra những quân cờ mới, giúp trò chơi thêm thú vị. àn cờ vua của Tí được xem như một lưới ô vuông gồm ~N~ dòng và ~M~ cột. Các dòng được đánh số từ ~1~ đến ~N~ từ trên xuống dưới, các cột được đánh số từ ~1~ đến ~M~ từ trái qua phải. Giao của dòng ~x~ và cột ~y~ được gọi là ô ~(x, y)~

Một ngày nọ, cậu tự tạo ra một quân cờ mới - quân cờ ~A~. Luật di chuyển của quân cờ này như sau: nếu quân cờ đang ở ô ~(x, y)~ thì ở bước tiếp theo, nó có thể đi đến một trong ~4~ ô ~(x, y + 2), (x, y - 2), (x - 2, y), (x + 2, y)~ với điều kiện ô đến phải nằm trong bàn cờ.

Tí liền thử nghiệm quân cơ này. Cậu đặt một quân cờ ~A~ vào ô ~(x1, y1)~ trong bàn cờ của mình. Cậu tự hỏi rằng, có thể di chuyển quân cờ đến ô ~(x2, y2)~ được hay không, và nếu được thì cần nhất bao nhiêu bước để quân cờ đi đến ô ~(x2, y2)~

Hãy giúp Tí trả lời câu hỏi trên

Input

  • Dòng đầu tiên: gồm hai số nguyên ~N, M (1 \le N, M \le 10^9)~ - kích thước bàn cờ vua của Tí,
  • Dòng thứ hai: gồm hai số nguyên ~x1, y1 (1 \le x1 \le N, 1 \le y1 \le M)~ - tọa độ ô quân cờ ~A~ được đặt vào
  • Dòng thứ ba: gồm hai số nguyên ~x2, y2 (1 \le x2 \le N, 1 \le y2 \le M)~ - tọa độ ô quân cờ ~A~ cần đến

Output

  • Một số nguyên duy nhất là số bước ít nhất để quân cờ ~A~ đi đến ô ~(x2, y2)~. Nếu không có cách đi, hãy in ra -1.

Scoring

  • Không có giới hạn gì thêm

Ví dụ

Input
5 4
1 2
5 4
Output
3
Input
2 2
1 1
2 1
Output
-1
Input
4 4
2 3
2 3
Output
0

Giải thích ví dụ

  • Trong ví dụ thứ nhất, một cách để di chuyển quân cờ A như sau: ~(1,2) -> (3,2) -> (3,4) -> (5,4)~

Bình luận

Hãy đọc nội quy trước khi bình luận.