#include <stdio.h>
#include <ctype.h>

#define TEXT_SIZE_MAX 4096

char text[TEXT_SIZE_MAX+1]; // символьный массив для загрузки текста
 
// объявление переменных - флаги и счетчики для всех видов слов
int letterWordCount = 0, letterWordOngoing = 0;
int digitWordCount  = 0, digitWordOngoing  = 0;
int symbolWordCount = 0, symbolWordOngoing = 0;
 
// функция завершения чтения слова и увеличение счетчика слова на единицу
void countLastWord(void)
{
   if ( letterWordOngoing != 0 ) { letterWordOngoing = 0; letterWordCount++; }
   else if ( digitWordOngoing != 0 ) { digitWordOngoing  = 0; digitWordCount++; }
   else if ( symbolWordOngoing != 0 ) { symbolWordOngoing = 0; symbolWordCount++; }
}
 
int main(void)
{
   int i, n, c;

   // загрузка текста в массив - цикл считывания одного символа текста
   n = 0;
   while( ( c = getchar() ) != EOF && c != 0 )
   {
      if ( n <= TEXT_SIZE_MAX - 1 ) 
         text[ n++ ] = (char)c;
      else
         break;
   }
   text[ n ] = 0;  // завершаем нулевым символом 

   // проход по символам текста загруженного в массив
   for( i = 0; text[i] != 0; i++ )
   {
      // анализ символов: к какой группе они относятся и проверка состояний
       if ( text[i] == '*'|| text[i] == '-'|| text[i] == '+' ) // проверка принадлежности к данному типу символов
       {
          if ( symbolWordOngoing == 0 )
          {
             countLastWord();
             symbolWordOngoing = 1;
          }
       }
       else if ( isdigit( text[i] ) ) // проверка пренадлежности к данному типу сиволов (цифра)
       {
          if ( digitWordOngoing == 0 )
          {
             countLastWord();
             digitWordOngoing = 1;
          }
       }
       else if ( islower( text[i] ) ) // проверка пренадлежности к данному типу сиволов (буква)
       {
          if ( letterWordOngoing == 0 )
          {
             countLastWord();
             letterWordOngoing = 1;
          }
       }
       else
       {
          printf("error: illegal character: %c / 0x%x\n", text[i], text[i]);
          return 0;
       }
   }
 
   countLastWord(); // финальное завершение текущего слова
 
   // вывод количества посчитанных слов
   printf("letterWordCount = %d\n", letterWordCount);
   printf("digitWordCount  = %d\n", digitWordCount );
   printf("symbolWordCount = %d\n", symbolWordCount);
  
   // вычисление конечного результата
   if( letterWordCount > symbolWordCount ) { printf("в данном тексте больше групп букв, чем групп знаков\n"); }
   else if ( letterWordCount == symbolWordCount ) { printf("в данном тексте одинаковое количество групп букв и групп знаков\n"); }
   else { printf("в данном тексте групп букв меньше, чем групп знаков\n"); }
 
   return 0;
}