Problem:
Problem P02: Yes, I have a number

博士：　ペーター君「Yes, I have a number」って知ってるかい？

ぺーター：　このまえテレビでやってましたよ。文章に含まれる各単語の文字数で何かを覚えるというものですよね。
「Yes, I have a number」 だから、「3.14という数字」という意味になって円周率を覚えるためのキーワードになっているんですよね。

博士：　ペーター君、それは違うんじゃ。
これは、3.1416 と解釈せねばならぬのじゃ。円周率は3.14159...だからのう。

ペーター：　それじゃ、あの番組は日本が円周率を3.14と教えているからといって無理矢理省略したんですか！？

博士：　、、、。小学校で教える円周率がやっと3から3.14に戻っただけでもよしとしよう。

ペーター：　そもそも、これで本当に覚えられるんですか？

博士：　日本人には難しいかもしれん。英語圏の人たちは使うようじゃよ、英語でゴロ合わせをするのは難しいからのぉ。

ペーター：　それにしても、チェックするのが面倒くさそうですね。

博士：　そこでじゃ、文章を単語の文字数の数列に変換するプログラムを作ってほしいのじゃ。

ペーター：　了解しました。詳しい仕様を教えてください博士。

博士：　1行の文章を入力としよう。簡単のためにアルファベットと空白のみを含む文章でよいぞ。
この文章について、空白・文頭・文末に挟まれた文字列の長さを順番に出力してくれ。
文字列の文字数は9を超えないと過程してよいぞ。

例えば、"Yes I have" の Yes は文頭と最初の空白で区切られているから文字数は 3 、 I は 1 つ目と 2 つ目の空白に区切られていて文字数は 1 じゃ。

博士：　・・・そうじゃ、空白が連続した場合の、文字数が 0 になる文字列も忘れずにな。

Input

複数のデータセットが入力として与えられます。各データセットで、アルファベットと空白を含む文字列が１行に与えられます。

文字列が "END OF INPUT" のとき、入力の終わりとします。この入力に対する出力を行ってはいけません。

Output

各データセットについて、文字列に対する文字数の数列を１行に出力して下さい。

Sample Input

Yes I have a number
How I wish I could calculate an unused color for space
Thank you
END OF INPUT

Output for the Sample Input

31416
31415926535
53

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;

namespace AOJ1042
{
    class Program
    {
        static void Main()
        {
            ReadInputs()
                .Select(s => s.Split(' ').Select(w => w.Length.ToString()))
                .Select(l => string.Join("", l.ToArray()))
                .ForEach(Console.WriteLine);
        }

        private static IEnumerable<string> ReadInputs()
        {
            string line;
            while ((line = Console.ReadLine()) != null && line != "END OF INPUT")
            {
                yield return line;
            }
        }
    }

    static class EnumerableExtensions
    {
        public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
        {
            foreach (var item in source)
            {
                action(item);
            }
        }
    }
}