Confusing description. Short solution. Just traverse the input
From the description, until example #2,  I was sure that the encoding uses equal number of useful data in each row, but not the case...\n\n\n        iveo__\n   
From the description, until example #2,  I was sure that the encoding uses equal number of useful data in each row, but not the case...\n\n```\n        iveo__\n        __eed_\n        __l_te\n        ___olc <-- I\'d expect this to be 4 chars of useful data, even if it\'s a space at the end, OR place the text\n\t\tin the top right corner with the same logic of traversal,\n\t\tbut NOPE, now have to handle \' \' in some stupid way\n```\n\n```\nclass Solution:\n    def decodeCiphertext(self, s: str, R: int) -> str:\n        N = len(s)\n        C = N // R\n        res = []\n        for c,r in product(range(C), range(R)):\n            if r * C + r + c < N:\n                res.append(s[r * C + r + c])\n        return \'\'.join(res).rstrip()\n```
['Python']