# Список из 12 позиций хроматической гаммы, построенной от ноты C.
# Каждый элемент - это range (диапазон допустимых имён) для одной и той же ступени,
# энгармонически равные ноты (например 'C#' и 'Db') лежат в одном range.
NOTES = [
    ['C'], ['C#', 'Db'], ['D'], ['D#', 'Eb'], ['E'], ['F'],
    ['F#', 'Gb'], ['G'], ['G#', 'Ab'], ['A'], ['A#', 'Bb'], ['B']
]

def note_index(note):
    # Ищем индекс (0-11) ноты в списке NOTES, перебирая все range'ы.
    for i, range in enumerate(NOTES):
        if note in range:
            return i
    # Если нота не найдена ни в одном range - имя ноты некорректно.
    return None

def chord_type(chord: str) -> str:
    # Разбиваем входную строку на отдельные ноты по пробелам.
    notes = chord.split()
    # Базовый минор/мажор аккорд состоит ровно из трёх нот.
    if len(notes) != 3:
        return 'Not a chord'

    # Получаем числовые индексы (0-11) для каждой ноты.
    idx = [note_index(n) for n in notes]
    # Если хотя бы одна нота не распознана - это не аккорд.
    if None in idx:
        return 'Not a chord'

    # Интервал между первой и второй нотой (по модулю 12, с учётом перехода через октаву).
    i1_2 = (idx[1] - idx[0]) % 12
    # Интервал между второй и третьей нотой.
    i2_3 = (idx[2] - idx[1]) % 12
    # Интервал между первой и третьей нотой.
    i1_3 = (idx[2] - idx[0]) % 12

    # По условию задачи интервал между первой и третьей нотой всегда должен быть равен 7.
    if i1_3 != 7:
        return 'Not a chord'

    # Минорный аккорд: интервал 1-2 = 3, интервал 2-3 = 4.
    if i1_2 == 3 and i2_3 == 4:
        return 'Minor'
    # Мажорный аккорд: интервал 1-2 = 4, интервал 2-3 = 3.
    if i1_2 == 4 and i2_3 == 3:
        return 'Major'

    # Во всех остальных случаях - это не минорный/мажорный аккорд.
    return 'Not a chord'

# примеры использования
print(chord_type('A C E'))    # Minor
print(chord_type('C E G'))    # Major
print(chord_type('A C# E'))   # Major
print(chord_type('C D E'))    # Not a chord