open System.Text.RegularExpressions
let matchWords = Regex(@"\w+")
let separators = """[ :#$%^&/<>{}*|;_()!,?.'@+\\\\\\[\\]\\\"]+"""
let tokenize (text:string) =
|> Seq.map (fun m -> m.Value)
|> Seq.collect(fun w -> w.Split <| separators.ToCharArray() )
|> Seq.filter(fun w -> String.IsNullOrEmpty w |> not)
let str = Console.ReadLine()
let tokens = tokenize str
printfn "%d" tokens.Length
|> List.map (printfn "%s")