Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым

Добрый день, помогите пожалуйста сделать вот такую программу.

Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f содержит 30 слов , каждое из которых будем называть ключевым. Сформировать файл g , который содержит строки файла f1 , циклически сдвинутые так, чтобы каждое ключевое слово, входящее в строку, начиналось с k-й позиции. Строки, содержащие ключевых слов, в файл g не включаются. Строки, которые содержат n ключевых слов, записываются в файл g, n раз.