{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE BangPatterns #-}

import Control.Applicative
import Control.Monad
import Control.Arrow
import Data.List
import Data.Maybe
import Data.Char
import qualified Data.ByteString.Char8 as B
import Text.Printf
import Debug.Trace

readInt = ( readLn :: IO Int )
readInts = map ( fst . fromJust . B.readInt ) . B.words <$> B.getLine

which a b f = if f then a else b
mp [ a, b ] = ( a, b )

main = do
	[ x1, y1, x2, y2 ] <- readInts
	let
		dx = x2 - x1
		dy = y2 - y1
		x3 = x2 - dy
		y3 = y2 + dx
		x4 = x3 - dx
		y4 = y3 - dy
	putStrLn $ unwords $ map show [ x3, y3, x4, y4 ]