import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {

        //문제
        //태그와 문자로 구성되어있다.
        //문자만 구별하여 뒤집는다.

        //예제 입력
        //baekjoon online judge
        //<open>tag<close>

        //예제 출력
        //noojkeab enilno egduj
        //<open>gat<close>

        //풀이
        //1. 태그 내부, 외부에 있는지 판단한다
        //2. 외부에 있는 단어를 뒤집는다

        //Boolean으로 <, > 안에 있는지 조건걸고
        //true일 경우에만 뒤집으면 될듯????
        //아마.....

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine().trim(); //받은 문자열의 공백 제거

        StringBuilder result = new StringBuilder(); //태그 저장장소
        StringBuilder wordBuilder = new StringBuilder(); //단어 저장장소

        //태그 내부/ 외부 판단할 변수
        boolean inTag = false;

        for (int i = 0; i < input.length(); i++) {
            char ch = input.charAt(i);

            // 태그가 있을 경우
            if (ch == '<') {
                inTag = true;
                // 이미 단어가 쌓인 경우 출력하고 초기화
                if (wordBuilder.length() > 0) {
                    result.append(reverseWord(wordBuilder.toString()));
                    wordBuilder.setLength(0); // StringBuilder 초기화
                }
                result.append('<');
                //태그가 끝났는지 판단
            } else if (ch == '>') {
                inTag = false;
                result.append('>');
            } else if (inTag) {
                // 태그 내부의 경우 그대로 반환
                result.append(ch);
            //단어처리
            } else {
                if (ch == ' ') {
                    // 공백을 만나면 이전까지 쌓인 단어를 뒤집어서 결과에 추가하고 공백 추가
                    result.append(reverseWord(wordBuilder.toString()));
                    result.append(' '); // 결과에 공백 추가
                    wordBuilder.setLength(0); // StringBuilder 초기화
                } else {
                    // 공백이 아니면 단어 누적
                    wordBuilder.append(ch);
                }
            }
        }
        
        System.out.println(result.toString());
    }

    // 단어를 뒤집는 함수
    private static String reverseWord(String word) {
        return new StringBuilder(word).reverse().toString();
    }
}

+ Recent posts