import inflect

def count_letters(word):
    
    count = 0
    for letter in word:
        if letter != ',' and letter !='-' and letter !=' ':
            count += 1

    return count

def split_with_spaces(sentence):
    
    sentence_list = []
    curr_word = 
    for c in sentence:
        if c ==  and curr_word != :
            
            
            sentence_list.append(curr_word+)
            curr_word = 
        else:
            curr_word += c

    

    if len(curr_word) > 0:
        sentence_list.append(curr_word)

    return sentence_list

def my_num_to_words(p, my_number):
    

    number_string_list = p.number_to_words(my_number, wantlist=True, andword='')

    number_string = number_string_list[0]

    for i in range(1,len(number_string_list)):
        number_string +=  + number_string_list[i]

    return number_string

def build_sentence(p, max_words):
    

    

    sentence_list = split_with_spaces()

    num_words = 13

    
    

    word_number = 2

    

    while num_words < max_words:
        
        

        

        ordinal_string = my_num_to_words(p, p.ordinal(word_number))

        

        word_number_string = my_num_to_words(p, count_letters(sentence_list[word_number - 1]))

        

        new_string = +word_number_string++ordinal_string+

        new_list = split_with_spaces(new_string)

        sentence_list += new_list

        

        num_words += len(new_list)

        

        word_number += 1

    return sentence_list, num_words

def word_and_counts(word_num):
    

    sentence_list, num_words = build_sentence(p, word_num)

    word_str = sentence_list[word_num - 1].strip(' ,')

    num_letters = len(word_str)

    num_characters = 0

    for word in sentence_list:
       num_characters += len(word)

    print('Word {0:8d} is , with {2} letters.  Length of the sentence so far: {3}  '.format(word_num,word_str,num_letters,num_characters))


p = inflect.engine()

sentence_list, num_words = build_sentence(p, 201)

print()
print()
print()

print('{0:3d}:  '.format(1),end='')

total_characters = 0

for word_index in range(201):

    word_length = count_letters(sentence_list[word_index])

    total_characters += len(sentence_list[word_index])

    print('{0:2d}'.format(word_length),end='')
    if (word_index+1)% 20 == 0:
        
        print()
        print('{0:3d}:  '.format(word_index + 2),end='')
    else:
        print(,end='')

print()
print()
print(+str(total_characters))
print()



word_and_counts(1000)
word_and_counts(10000)
word_and_counts(100000)
word_and_counts(1000000)
word_and_counts(10000000)