Problem:
Score : 100 points

Problem Statement

Takahashi is distributing N balls to K persons.

If each person has to receive at least one ball, what is the maximum possible difference in the number of balls received between the person with the most balls and the person with the fewest balls?

Constraints

1 \leq K \leq N \leq 100

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N K

Output

Print the maximum possible difference in the number of balls received.

Sample Input 1

3 2

Sample Output 1

1

The only way to distribute three balls to two persons so that each of them receives at least one ball is to give one ball to one person and give two balls to the other person.

Thus, the maximum possible difference in the number of balls received is 1.

Sample Input 2

3 1

Sample Output 2

0

We have no choice but to give three balls to the only person, in which case the difference in the number of balls received is 0.

Sample Input 3

8 5

Sample Output 3

3

For example, if we give 1, 4, 1, 1, 1 balls to the five persons, the number of balls received between the person with the most balls and the person with the fewest balls would be 3, which is the maximum result.

Solution in Haskell (GHC 7.10.3) (judge verdict: Accepted)

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE GADTs #-}

-- Control
--import Control.Functor
import Control.Applicative
import Control.Monad
import Control.Monad.ST
import Control.Arrow
--import Control.Category


-- Data
import qualified Data.List as L
-- import qualified Data.Set as S
-- import qualified Data.IntSet as IS
-- import qualified Data.Map as M
-- import qualified Data.IntMap as IM
-- import qualified Data.Sequence as Seq
-- import qualified Data.Tree as Tree
-- import qualified Data.Graph as G
-- import qualified Data.Tuple as Tup
-- import qualified Data.Array as Ary
--import qualified Data.Vector as Vec

import Data.Bool
import Data.Char
import Data.Monoid 
import Data.Ord
import Data.Maybe
import Data.Bits
import Data.Either
import Data.Eq
import Data.Function


-- Debug
import qualified Debug.Trace as DT


-- io
import Text.Printf


main ::IO()
main = do
  [n,k] <- map read . words <$> getLine :: IO [Int]
  putStrLn $ show $ solve n k

solve :: Int -> Int -> Int
solve n 1 = 0
solve n k = n - k