from numpy.random import randint
import sys

def validate_and_exctract_input(args=sys.argv):
    if len(args) != 4:
        print("missing args, should be 3: attacking units, units attacker is willing to lose and deffending units")
        sys.exit(1)

    if int(args[1]) < int(args[3]):
        print("attacker can't lose more units than it has")
        sys.exit(1)

    return map(int, args[1:])

def play_combat_round(att, att_limit, deff):
    att_dice_count = min(att, 3)
    deff_dice_count = min(deff, 2)
    dice_count = min(att_dice_count, deff_dice_count)

    att_dice = randint(1,7, size=att_dice_count)
    att_dice[::-1].sort()
    att_dice = att_dice[:dice_count]

    deff_dice = randint(1,7, size=deff_dice_count)
    deff_dice[::-1].sort()
    deff_dice = deff_dice[:dice_count]

    results = att_dice - deff_dice

    deff_losses = sum([1 for r in results if r > 0])

    return dice_count - deff_losses, deff_losses

def simulate_combat(att, deff, att_limit):
    while not (att <= att_limit or deff <= 0):
        att_losses, deff_losses = play_combat_round(att, att_limit, deff)
        att, deff = att - att_losses, deff - deff_losses
    return att, deff

att, deff, att_limit = validate_and_exctract_input()
att, deff = simulate_combat(att, deff, att_limit)
    
print(att)
print(deff)