#include<bits/stdc++.h>
using namespace std;

int main(){
	string ai;
	cin>>ai;
	int n = 1000000007;
	int resenje;
	int a=1, b=1,c=1,d=1,e=1,f=1,g=1,h=1,i=1,j=1,k=1,l=1,m=1,ni=1,o=1,p=1,q=1,r=1,s=1,t=1,u=1,v=1,w=1,x=1,y=1,z=1;
	for(int i = 0; i < n; i++){
		if(s[i] == "a"){
			a++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="b"){
			b++;
		}
		else break;
	}for(i<n; i++){
		if(ai[i] =="c"){
			c++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="d"){
			d++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="e"){
			e++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="f"){
			f++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="g"){
			g++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="h"){
			h++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="i"){
			i++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="j"){
			j++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="k"){
			k++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="l"){
			l++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="m"){
			m++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="n"){
			ni++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="o"){
			o++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="p"){
			p++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="q"){
			q++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="r"){
			r++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="s"){
			s++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="t"){
			t++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="u"){
			u++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="v"){
			v++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="w"){
			w++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="x"){
			x++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="y"){
			y++;
		}
		else break;
	}
	for(i<n; i++){
		if(ai[i] =="z"){
			z++;
		}
		else break;
	}
	rešenje = a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z;
	cout<<rešenje;
	return 0;
}