#总是感觉自己写的很复杂,会有更精简的解法
#lt总列表, l是临时列表,i是临时计数器
#i从1开始计数,计数到k或者链表遍历结束跳出内循环,如果i>k则证明节点数到了k为一组,将列表反转,否则剩下就是无法满足k个一组,保持原样,将临时列表添加到总列表
#根据lt总列表,构建链表ph


# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @param k int整型 
# @return ListNode类
#
class Solution:
    def reverseKGroup(self , head: ListNode, k: int) -> ListNode:
        # write code here
        if not head:
            return head
        p = head 
        lt = []
        while p:
            l = []
            i = 1
            while i<=k and p:
                l.append(p.val)
                p = p.next
                i+=1
            if i>k:
                l.reverse()
            lt.extend(l)
        ph = ListNode(lt[0])
        pp= ph
        for i in range(1, len(lt)):
            tmp = ListNode(lt[i])
            pp.next = tmp
            pp= pp.next
        return ph



#################怎么全都是这个写法???
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
# @param head ListNode类 
# @param k int整型 
# @return ListNode类
for z in range(20):
    s = input()
    arr = s.lstrip('{').split('},')  #用于截掉字符串左边的空格或指定字符
    k = int(arr[1])
    arr_num = arr[0].split(',')
    arr_re = []
    i = 0
    while True:
        if i+k-1 >= len(arr_num): #不是k的倍数,将最后剩下的节点保持原样,或最后剩余的节点
            for n in range(i, len(arr_num)):
                arr_re.append(arr_num[n])  #不倒转
            break;
        else:
            for j in range(k):
                arr_re.append(arr_num[i+k-1-j])  #索引从0开始,减1
            i += k
    print('{'+','.join(arr_re)+'}')