Problem:
Score : 100 points

Problem Statement

Alice and Bob are playing One Card Poker.

One Card Poker is a two-player game using playing cards.

Each card in this game shows an integer between 1 and 13, inclusive.

The strength of a card is determined by the number written on it, as follows:

Weak 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < 11 < 12 < 13 < 1 Strong

One Card Poker is played as follows:

Each player picks one card from the deck. The chosen card becomes the player's hand.

The players reveal their hands to each other. The player with the stronger card wins the game.

If their cards are equally strong, the game is drawn.

You are watching Alice and Bob playing the game, and can see their hands.

The number written on Alice's card is A, and the number written on Bob's card is B.

Write a program to determine the outcome of the game.

Constraints

1≦A≦13

1≦B≦13

A and B are integers.

Input

The input is given from Standard Input in the following format:

A B

Output

Print Alice if Alice will win. Print Bob if Bob will win. Print Draw if the game will be drawn.

Sample Input 1

8 6

Sample Output 1

Alice

8 is written on Alice's card, and 6 is written on Bob's card.
Alice has the stronger card, and thus the output should be Alice.

Sample Input 2

1 1

Sample Output 2

Draw

Since their cards have the same number, the game will be drawn.

Sample Input 3

13 1

Sample Output 3

Bob

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

module Main where
import Control.Monad
import Control.Applicative
import Data.Maybe
import Data.List
import qualified Text.Printf
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString as BC
 
------------------------------------------
 
cardOrder = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1]
 
main :: IO ()
main = do
  [a, b] <- map (fromJust . flip findIndex cardOrder . (==)) <$> readInts
  putStrLn $ case compare a b of
               LT -> "Bob"
               EQ -> "Draw"
               GT -> "Alice"
 
------------------------------------------
 
{- Int input -}
 
parseInt :: BC.ByteString -> Int
parseInt = fst . fromJust . BC.readInt
 
parseInts :: BC.ByteString -> [Int]
parseInts = map parseInt <$> BC.words
 
readInt :: IO Int
readInt = parseInt <$> BC.getLine
 
readInts :: IO [Int]
readInts = parseInts <$> BC.getLine
 
{- Double Formatting -}
 
doubleFmt :: Double -> String
doubleFmt = Text.Printf.printf "%.12f"