/*   @JUDGE_ID:   1705PZ   153   C */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int sort_function( const void *a, const void *b){
	if(*(char *)a > *(char *)b)
		return 1;
	else if(*(char *)a == *(char *)b)
		return 0;
	else if(*(char *)a < *(char *)b)
		return -1;
	else
		return 0;
	}

int main(){
int i,j,length,count;
long count1;
char temp,string[100],string1[100];
while(scanf("%s",string) != EOF){
	strcpy(string1,string);
	length = strlen(string);
	qsort((void *)string,length,sizeof(char),sort_function);
	count1 = 0;
	while(1){
		count = 0;
		count1++;
		if(strcmp(string,string1) == 0){
			printf("%ld\n",count1);
			break;
			}
		for(i = 0;i < length - 1;i++)
			if(string[i] < string[i + 1])
				count++;
		if(count == 0)
			break;
		for(i = length - 1;string[i] <= string[i - 1];i--);
		for(j = length - 1;j >= i;j--){
			if(string[i - 1] < string[j]){
				temp = string[i - 1];
				string[i - 1] = string[j];
				string[j] = temp;
				break;
				}
			}
		qsort((void *)(string + i),length - i,sizeof(char),sort_function);
		}
	}
return 0;
}
@END_OF_SOURCE_CODE

