#include <iostream>
using namespace std;

// Проверяет, принадлежит ли символ алфавиту
bool AllowedSign(char x) {
	return ((x >= '0' && x <= '9') || (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z'))?1:0;
}

int main() {
	char x;
	int count = 0;	// Счетчик слов в предложении
	bool wordBegin = true;	// Будет ли следующий считанный символ, принадлежащий алфавиту, началом нового слова
	while(EOF != (x = getchar())) { 
		if(AllowedSign(x) && wordBegin) {	// Если текущий символ принадлежит алфавиту и ожидается новое слово
			count++;
			wordBegin = false;	// Указываем, что последующие находимые символы алфавита не будут началом слова
		} else if(x == ' ')	// Если текущий символ - пробел
			wordBegin = true;	// Указываем для следующей итерации, что текущее слово "закончилось" и ожидается новое
	}
	cout << count;
	return 0;
}