import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
   Scanner in = new Scanner(System.in);
   String inString = in.nextLine();
   //示例String inString = "aade *  $afaefeafeafwafaefeafawf* fafaf";
   String result = calc(inString);
   System.out.println(result);
}

public static String calc(String str){
    // 匹配非字母的字符进行分割
    String[] words = str.split("[^A-Za-z]");
    StringBuilder result = new StringBuilder();

    // 逆序添加分割完的单词
    for (int i = words.length - 1; i >= 0; i--) {

        //去除多个连续空格字符串
        if("".equals(words[i])){
            continue;
        }

        //处理二十个字符以上字符串
        if(words[i].length()>20){
            List<String> list = new ArrayList<>();
            int length = 0;
            int temp = 0;
            while (length < words[i].length() ){
                length = (temp+20) < words[i].length()?temp+20:words[i].length();
                list.add(words[i].trim().substring(temp,length));
                temp = length;
            }

            for(int j=list.size()-1;j>-1;j--){
                result.append(list.get(j)).append(" ");
            }
        }else{
            result.append(words[i].trim()).append(" ");
        }
    }
    return result.toString().trim();
}

}