# -*- coding: utf-8 -*-
"""
金額とお札の枚数（プログラム）
"""
# これは，難易度３を達成するプログラムのソースコードです．


# 金額とお札の枚数の組み合わせを無駄のない総当たりで探す
def keisan(kingaku, maisuu):
    # １万円札以外で作る必要のある金額・枚数を事前準備
    kingaku_tmp1 = kingaku
    maisuu_tmp1  = maisuu
    # １万円札を0枚から上限まで
    # 金額から算出したものと指定の枚数とで少ない方を採用
    for i in range(min(kingaku//10000, maisuu) + 1):
        # 千円札で作る必要のある金額・枚数をリセット
        kingaku_tmp2 = kingaku_tmp1
        maisuu_tmp2  = maisuu_tmp1
        # ５千円札を0枚から残額・残枚数の上限まで
        for j in range(min(kingaku_tmp1//5000, maisuu_tmp1) + 1):
            # 残枚数で計算の帳尻が合うなら，それを解として戻す
            if kingaku_tmp2 == maisuu_tmp2 * 1000:
                return [i, j, maisuu_tmp2]
            # ５千円札が増えれば千円札関連の金額・枚数に変化
            # 乗算より減算の方が早いため，ここで更新
            kingaku_tmp2 -= 5000
            maisuu_tmp2  -= 1
        # １万円札が増えれば５千円札関連の金額・枚数に変化
        # 乗算より減算の方が早いため，ここで更新
        kingaku_tmp1 -= 10000
        maisuu_tmp1  -= 1
    
    # 見つからなかったら負の値を戻す
    return [-1, -1, -1]


def main():
    # 金額と枚数の入力
    kingaku = (int(input("金額：")) // 1000) * 1000
    maisuu  = int(input("枚数："))
    print()  # 採点の都合上の空行 

    # 計算
    osatsu = keisan(kingaku, maisuu)

    # osatsuに正の結果が代入してあれば，組み合わせが見つかった
    if (osatsu[0] >= 0) and (osatsu[1] >= 0) and (osatsu[2] >= 0):
        print(f"１万円札は {osatsu[0]} 枚")
        print(f"５千円札は {osatsu[1]} 枚")
        print(f"　千円札は {osatsu[2]} 枚")
    else:
        print("組み合わせは見つかりませんでした")
    
    input("\nEnterを押してプログラムを完全終了")



if __name__ == "__main__":
    main()
