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 Ruby (2.3.3) (judge verdict: Accepted)

class Card
  attr_reader :number
  POWER_MAP = {
   "1": 13,
   "2": 1,
   "3": 2,
   "4": 3,
   "5": 4,
   "6": 5,
   "7": 6,
   "8": 7,
   "9": 8,
   "10": 9,
   "11": 10,
   "12": 11,
   "13": 12
  }

  def initialize(number)
    raise ArgumentError, "number must be between 1 and 13. Given: #{number.inspect}" unless (1..13).include?(number.to_i)
    @number = number.to_s
  end

  def power
    POWER_MAP[number.to_sym]
  end
end

class CardSet
  attr_reader :deck
  def initialize
    @deck = (1..13).map do |i|
      Card.new(i)
    end
    @deck
  end

  def draw
    deck.sample
  end
end

class Player
  attr_reader :name
  attr_accessor :card
  def initialize(name)
    @name = name
  end

  def card_power
    card.power
  end
end

class OneTimePoker
  def initialize(player_a, player_b, card_set)
    @player_a = player_a
    @player_b = player_b
    @card_set = card_set
  end

  def game
    draw_cards
    result
  end

  private

  def result
    case @player_a.card_power <=> @player_b.card_power
    when -1
      @player_b.name
    when 0
      "Draw"
    when 1
      @player_a.name
    end
  end

  def draw_cards
    @player_a.card ||= @card_set.draw
    @player_b.card ||= @card_set.draw
  end
end

card_numbers = gets.chomp.split(' ')
card_set = CardSet.new
player_a = Player.new("Alice")
player_a.card = Card.new card_numbers[0]
player_b = Player.new("Bob")
player_b.card = Card.new card_numbers[1]
puts OneTimePoker.new(player_a, player_b, card_set).game