#include #include using namespace std; const int MOD = 9302023; int main() { vector valid; valid.push_back("zero"); valid.push_back("one"); valid.push_back("two"); valid.push_back("three"); valid.push_back("four"); valid.push_back("five"); valid.push_back("six"); valid.push_back("seven"); valid.push_back("eight"); valid.push_back("nine"); ios_base::sync_with_stdio(false); cin.tie(nullptr); string s; cin >> s; vector minl(s.size()+1, s.size()+1); minl[0] = 0; vector nways(s.size()+1, 1); for(int i = 0; i < (int)s.size(); i++) { if(minl[i] + 1 < minl[i+1]) { minl[i+1] = minl[i] + 1; nways[i+1] = 0; } if(minl[i] + 1 == minl[i+1]) { nways[i+1] += nways[i]; if(nways[i+1] >= MOD) nways[i+1] -= MOD; } for(const auto& cand: valid) { if(i + cand.size() <= s.size() && s.substr(i, cand.size()) == cand) { if(minl[i] + 1 < minl[i+cand.size()]) { minl[i+cand.size()] = minl[i] + 1; nways[i+cand.size()] = 0; } if(minl[i] + 1 == minl[i+cand.size()]) { nways[i+cand.size()] += nways[i]; if(nways[i+cand.size()] >= MOD) nways[i+cand.size()] -= MOD; } } } } cout << minl.back() << "\n"; cout << nways.back() << "\n"; }