def find_ori(dna: list, ori: str) -> int:
    """
    A circular DNA, find the origin of replication
    Given:
        dna: a list of nucleotides ATCG (e.g.: ['A', 'T', 'C', 'C', 'G'])
        ori: a string of nucleotides (e.g.: "CGA")
    Return:
        start index of dna where ori starts. (e.g.: 3)
        (any of them)
    """

    if len(ori) > len(dna):
        print("ori longer than dna, no need to find.")
        return -1

    circular_dna = dna
    for i in range(len(ori) - 1):
        circular_dna.append(dna[i])

    for i in range(len(circular_dna) - len(ori) + 1):
        frag = circular_dna[i:i + len(ori)]
        frag = ''.join(frag)
        if frag == ori:
            return i % len(dna)
    return -1