#include <set>
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include<string.h>
#define MAX 12
using namespace std;
string arr[]={"i", "like", "sam", "sung", "samsung", "mobile", "ice","cream", "icecream", "man", "go", "mango"};
set<string> dictionary (arr,arr+MAX);
int cnt=0;
void search_grow(string str, int i, int j)
{
if(i > j || j >= str.length() || i >= str.length())
{
return;
}
string temp(str, i, j - i + 1);
if(dictionary.find(temp) != dictionary.end())
{
std::cout << "[search_grow] " << temp << "\n";
cnt++;
}
search_grow(str, i, j + 1);
}
void search_part(string str)
{
for(int t = 0; t < str.size(); t++)
search_grow(str, t, t);
}
int main()
{
string str;
cin>>str;
search_part(str);
cout<<cnt<<endl;
return 0;
}
I2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGU8c3RyaW5nLmg+CiNkZWZpbmUgTUFYIDEyCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cmluZyBhcnJbXT17ImkiLCAibGlrZSIsICJzYW0iLCAic3VuZyIsICJzYW1zdW5nIiwgIm1vYmlsZSIsICJpY2UiLCJjcmVhbSIsICJpY2VjcmVhbSIsICJtYW4iLCAiZ28iLCAibWFuZ28ifTsKc2V0PHN0cmluZz4gZGljdGlvbmFyeSAoYXJyLGFycitNQVgpOwppbnQgY250PTA7Cgp2b2lkIHNlYXJjaF9ncm93KHN0cmluZyBzdHIsIGludCBpLCBpbnQgaikKewogICAgaWYoaSA+IGogfHwgaiA+PSBzdHIubGVuZ3RoKCkgfHwgaSA+PSBzdHIubGVuZ3RoKCkpCiAgICB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHN0cmluZyB0ZW1wKHN0ciwgaSwgaiAtIGkgKyAxKTsKICAgIGlmKGRpY3Rpb25hcnkuZmluZCh0ZW1wKSAhPSBkaWN0aW9uYXJ5LmVuZCgpKQogICAgewogICAgCXN0ZDo6Y291dCA8PCAiW3NlYXJjaF9ncm93XSAiIDw8IHRlbXAgPDwgIlxuIjsKICAgIAljbnQrKzsKICAgIH0KICAgIHNlYXJjaF9ncm93KHN0ciwgaSwgaiArIDEpOwp9Cgp2b2lkIHNlYXJjaF9wYXJ0KHN0cmluZyBzdHIpCnsKCWZvcihpbnQgdCA9IDA7IHQgPCBzdHIuc2l6ZSgpOyB0KyspCiAgICAJc2VhcmNoX2dyb3coc3RyLCB0LCB0KTsKfQoKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgc3RyOwogICAgY2luPj5zdHI7CiAgICBzZWFyY2hfcGFydChzdHIpOwogICAgY291dDw8Y250PDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=