# Вам даны 2 координаты 2 клеток на шахматном поле.
# Нужно ответить на вопрос, можно ли попасть из одной клетки
# в другую за не более чем 2 хода конем. В случае, если попасть возможно,
# надо вывести количество ходов, за которое это можно сделать.
# Если попасть невозможно, следует вернуть -1.
# Конь ходит буквой Г (1 + 2 или 2 + 1 клетки).
# На вход подаются числа от 1 до 8 в 4 строках.
# Первые 2 строки задают координаты начальной клетки, вторые 2 - координаты конечной клетки.
# Формат выходных данных: одно число — количество ходов,
# за которые можно попасть из из одной клетки во вторую. Если невозможно - вывести -1.

x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())

if x1 == x2 and y1 == y2:
    print(0)
    exit()

# Список содержит все возможные варианты ходов коня.
knight_moves = [(-2, -1), (-1, -2), (-2, 1), (-1, 2), (2, -1), (1, -2), (2, 1), (1, 2)]

first_move = []  # Список содержит все возможные координаты коня после 1-го хода.

for element in knight_moves:  # Перебираем все возможные коды коня
    possible_x, possible_y = element
    new_pos_x = x1 + possible_x  # Для каждого случая вычисляем новое положение коня на доске
    new_pos_y = y1 + possible_y
    if 1 <= new_pos_x <= 8 and 1 <= new_pos_y <= 8:  # Если оно не выходит за пределы доски 8 х 8,
        first_move.append((new_pos_x, new_pos_y))  # добавляем его в список first_move.
    if new_pos_x == x2 and new_pos_y == y2:  # Если координаты совпадают с конечной клеткой,
        print(1)  # задача решена за один ход. Завершаем программу.
        exit()

for position in first_move:  # Для каждой возможной координаты коня после 1-го хода
    x, y = position
    for element in knight_moves:  # запускаем аналогичный перебор допустимых ходов.
        possible_x, possible_y = element
        new_pos_x = x + possible_x  # Для каждого случая вычисляем новое положение коня на доске
        new_pos_y = y + possible_y
        if new_pos_x == x2 and new_pos_y == y2:  # Если координаты совпадают с конечной клеткой,
            print(2)  # задача решена за два хода. Завершаем программу.
            exit()

# Если программа к этому моменту не завершилась, то задачу невозможно решить менее чем за 2 хода.
print(-1)
