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

/* program to count letter pairs.
   burt rosenberg, 27 aug 93
   revised 26 aug 2004
*/

#define MAXSIZE 5000

int printUsage(char * s) {
    printf("usage: %s [-d nnn]\n", s ) ;
    printf("         -d nnn  maxiumuy offset is nnn\n", s ) ;
    exit(0) ;
}

main( int argc, char * argv[] )
{
  char a[MAXSIZE] ;
  int i, j, c ;
  int aLen ;
  int count ;
  int offEnd, offBegin, offset ;
  offEnd = -1 ;

  if ( argc>1 && *argv[1]== '-' ) switch ( *(argv[1]+1)) {
     case 'd':
         if (argc<3) printUsage(argv[0]) ;
         offEnd = atoi(argv[2]) ; 
         break ; 
     default:
         printUsage(argv[0]) ;
  }
  else if ( argc>1 ) printUsage(argv[0]) ;

  c = getc(stdin) ;
  i = 0 ;
  while (c!=EOF) {
    if (isalpha(c)) {
       a[i] = tolower(c) ;
       i++ ;
       if ( i>(MAXSIZE-1) ) break ;
    }
    c = getc(stdin) ;
  }
  a[i] = '\0' ; 
  aLen = i ;

  offBegin = 1 ;
  if ( offEnd==-1 ) offEnd = aLen/2 ;

  for (offset=offBegin; offset< offEnd+1; offset++ ) {
    count = 0 ;
    for (i=0;i<aLen;i++)
      if (a[i]==a[(i+offset)%aLen]) count++ ;
    printf("%4d, %4d ", offset, count ) ;
    for ( j=0; j<count; j++ ) printf("*") ;
    printf("\n") ;
  }
}
