#include <stdio.h>
#include <string.h>
int factorial(int n) {
if (n == 0) return 1;
else return (n * factorial(n-1));
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
char sen[10000];
char word[15][30];
int cases, i, len, count, start, j, x, ara[1000], match, countf, k, r, y, t;
while(cases--) {
count = 0;
x = 0;
y = 1;
for (i = 0; i < len; i++) {
if(x == 0 && y == 1)
{
count++;
x = 0;
y = 0;
}
else if(sen[i] == ' ' && x == 0 && y == 0)
{
count++;
x = 1;
}
else if(sen[i] == '\0' && y == 0)
{
count++;
x = 1;
}
else if(sen[i] == ' ' && x == 1 && y == 0) {
x = 1;
}
else
{
x = 0;
}
}
j = 0;
start = 0;
r = 0;
t = 0;
for (i = 0; i <= len; i++) {
if(sen[i] == ' ' && t == 0) {
x = i;
for (j = start, k = 0; j < x; j++, k++)
{
word[r][k] = sen[j];
}
word[r][k] = '\0';
start = x + 1;
r++;
t = 1;
}
else if(sen[i] == ' ' && t == 1)
{
t = 1;
start++;
}
else t = 0;
}
for(i = start, k = 0; i < len; i++, k++) {
word[r][k] = sen[i];
}
word[r][k] = '\0';
ara[40], match, countf;
match = 1;
countf = factorial(count);
for(i = 0; i < count; i++) ara[i] = 0;
for(i = 0; i < count; i++) {
if(match > 1)
countf /= factorial(match);
match = 1;
if(ara[i] == 0) {
for (j = i+1; j < count; j++) {
if(ara
[j
] == 0 && strcmp(word
[i
], word
[j
]) == 0) { match++;
ara[j] = 1;
}
}
}
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBmYWN0b3JpYWwoaW50IG4pIHsKICAgIGlmIChuID09IDApIHJldHVybiAxOwogICAgZWxzZSByZXR1cm4gKG4gKiBmYWN0b3JpYWwobi0xKSk7Cn0KCmludCBtYWluKCkKewogICAgLy9mcmVvcGVuKCJpbi50eHQiLCAiciIsIHN0ZGluKTsKICAgIC8vZnJlb3Blbigib3V0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGNoYXIgc2VuWzEwMDAwXTsKICAgIGNoYXIgd29yZFsxNV1bMzBdOwogICAgaW50IGNhc2VzLCBpLCBsZW4sIGNvdW50LCBzdGFydCwgaiwgeCwgYXJhWzEwMDBdLCBtYXRjaCwgY291bnRmLCBrLCByLCB5LCB0OwogICAgc2NhbmYoIiVkIiwgJmNhc2VzKTsKICAgIGdldGNoYXIoKTsKICAgIHdoaWxlKGNhc2VzLS0pIHsKCiAgICAgICAgY291bnQgPSAwOwogICAgICAgIGdldHMoc2VuKTsKICAgICAgICBsZW4gPSBzdHJsZW4oc2VuKTsKICAgICAgICB4ID0gMDsKICAgICAgICB5ID0gMTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKCiAgICAgICAgICAgIGlmKHggPT0gMCAmJiB5ID09IDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgICB4ID0gMDsKICAgICAgICAgICAgICAgIHkgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoc2VuW2ldID09ICcgJyAmJiB4ID09IDAgJiYgeSA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICAgICAgeCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZihzZW5baV0gPT0gJ1wwJyAmJiB5ID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgICB4ID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHNlbltpXSA9PSAnICcgJiYgeCA9PSAxICYmIHkgPT0gMCkgewogICAgICAgICAgICAgICAgeCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB4ID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaiA9IDA7CiAgICAgICAgc3RhcnQgPSAwOwogICAgICAgIHIgPSAwOwogICAgICAgIHQgPSAwOwogICAgICAgIGZvciAoaSA9IDA7IGkgPD0gbGVuOyBpKyspIHsKICAgICAgICAgICAgaWYoc2VuW2ldID09ICcgJyAmJiB0ID09IDApIHsKICAgICAgICAgICAgICAgIHggPSBpOwoKICAgICAgICAgICAgICAgIGZvciAoaiA9IHN0YXJ0LCBrID0gMDsgaiA8IHg7IGorKywgaysrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHdvcmRbcl1ba10gPSBzZW5bal07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB3b3JkW3JdW2tdID0gJ1wwJzsKICAgICAgICAgICAgICAgIHN0YXJ0ID0geCArIDE7CiAgICAgICAgICAgICAgICByKys7CiAgICAgICAgICAgICAgICB0ID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHNlbltpXSA9PSAnICcgJiYgdCA9PSAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0ID0gMTsKICAgICAgICAgICAgICAgIHN0YXJ0Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB0ID0gMDsKICAgICAgICB9CgogICAgICAgIGZvcihpID0gc3RhcnQsIGsgPSAwOyBpIDwgbGVuOyBpKyssIGsrKykgewogICAgICAgICAgICB3b3JkW3JdW2tdID0gc2VuW2ldOwogICAgICAgIH0KICAgICAgICB3b3JkW3JdW2tdID0gJ1wwJzsKCgkJYXJhWzQwXSwgbWF0Y2gsIGNvdW50ZjsKICAgICAgICBtYXRjaCA9IDE7CiAgICAgICAgY291bnRmID0gZmFjdG9yaWFsKGNvdW50KTsKICAgICAgICBmb3IoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSBhcmFbaV0gPSAwOwogICAgICAgIGZvcihpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgICAgaWYobWF0Y2ggPiAxKQogICAgICAgICAgICAgICAgY291bnRmIC89IGZhY3RvcmlhbChtYXRjaCk7CiAgICAgICAgICAgIG1hdGNoID0gMTsKICAgICAgICAgICAgaWYoYXJhW2ldID09IDApIHsKICAgICAgICAgICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IGNvdW50OyBqKyspIHsKICAgICAgICAgICAgICAgICAgICBpZihhcmFbal0gPT0gMCAmJiBzdHJjbXAod29yZFtpXSwgd29yZFtqXSkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCsrOwogICAgICAgICAgICAgICAgICAgICAgICBhcmFbal0gPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwcmludGYoIjEvJWRcbiIsIGNvdW50Zik7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCg==