#include <cstdio>
#include <cmath>
#include <cstring>
#include <vector>
#include <algorithm>
#define MOD 1000000007
#define LIM 100000
#define st first
#define nd second
using namespace std;
typedef pair<int,int> pii;
typedef pair<long double,long long> pdl;
char s[710];
long long ans;
long double ln[110];
int cnt[110];
vector<pii> lst1,lst2;
vector<pdl> fac1,fac2;
long long power(long long a,long long b)
{
    long long ret = 1;
    for(;b;b>>=1)
    {
        if(b&1) ret = ret*a%MOD;
        a = a*a%MOD;
    }
    return ret;
}
void dfs(vector<pdl> &fac,vector<pii> &lst,int dep,long double l,long long mul)
{
    int i;
    long long v = 1;
    if(dep >= lst.size())
    {
        fac.push_back(pdl(l,mul));
        return;
    }
    for(i=0;i<=lst[dep].nd;i++)
    {
        dfs(fac,lst,dep+1,l+i*ln[lst[dep].st],mul*v%MOD);
        v = v*lst[dep].st%MOD;
    }
}
int main()
{
    int i,j,v,pro;
    long long P;
    long double S,mx;
    for(i=1;i<=100;i++) ln[i] = log(i);
    while(scanf("%s",s)>0)
    {
        memset(cnt,0,sizeof(cnt));
        S = 0; P = 1;
        for(i=0;s[i];i+=2)
        {
            v = (s[i]-'0')*10+s[i+1]-'0';
            cnt[v]++;
            S += ln[v]; P = P*v%MOD;
        }
        S /= 2;
        
        pro = 1;
        lst1.clear(); lst2.clear();
        for(i=2;i<=100;i++) if(cnt[i]>0)
        {
            pro *= cnt[i]+1;
            if(pro >= LIM) break;
            lst1.push_back(pii(i,cnt[i]));
        }
        for(;i<=100;i++) if(cnt[i]>0) lst2.push_back(pii(i,cnt[i]));
        
        fac1.clear(); fac2.clear();
        dfs(fac1,lst1,0,0,1); dfs(fac2,lst2,0,0,1);
        sort(fac1.begin(),fac1.end()); sort(fac2.begin(),fac2.end());
        
        mx = -1;
        for(i=0,j=fac2.size()-1;i<fac1.size();i++)
        {
            while(j>=0 && fac1[i].st+fac2[j].st>S) j--;
            if(j<0) break;
            if(mx < fac1[i].st+fac2[j].st)
            {
                mx = fac1[i].st+fac2[j].st;
                ans = fac1[i].nd*fac2[j].nd%MOD;
            }
        }
        printf("%lld\n",(ans+P*power(ans,MOD-2))%MOD);
    }
    return 0;
}