from itertools import combinations

def read_binary_watch(turnedOn):
    if turnedOn < 0 or turnedOn > 10:
        return []  # عدد المصابيح غير صالح
    
    results = []
    
    # استعراض جميع التركيبات الممكنة
    for h in range(turnedOn + 1):
        m = turnedOn - h
        if h > 4 or m > 6:  # إذا تجاوز عدد المصابيح حدود الساعات أو الدقائق
            continue
        hours = [sum(comb) for comb in combinations([1, 2, 4, 8], h) if sum(comb) < 12]
        minutes = [sum(comb) for comb in combinations([1, 2, 4, 8, 16, 32], m) if sum(comb) < 60]
        for hour in hours:
            for minute in minutes:
                results.append(f"{hour}:{minute:02d}")
    
    return results

def main():
    print("برنامج الساعة الثنائية")
    while True:
        try:
            user_input = input("أدخل عدد المصابيح المضاءة (0-10) أو اكتب 'exit' للخروج: ")
            if user_input.lower() == 'exit':
                print("وداعاً!")
                break
            turnedOn = int(user_input)
            if turnedOn < 0 or turnedOn > 10:
                print("يرجى إدخال رقم بين 0 و 10.")
                continue
            results = read_binary_watch(turnedOn)
            if not results:
                print("لا توجد أوقات ممكنة لهذه القيمة.")
            else:
                print(f"الأوقات الممكنة: {', '.join(results)}")
        except ValueError:
            print("يرجى إدخال رقم صحيح.")

# تشغيل البرنامج
main()
