Python solution
IntuitionApproachComplexity
Time complexity:

Space complexity:
Code
# Intuition
<!-- Describe your first thoughts on how to solve this problem. -->

# Approach
<!-- Describe your approach to solving the problem. -->

# Complexity
- Time complexity:
<!-- Add your time complexity here, e.g. $$O(n)$$ -->

- Space complexity:
<!-- Add your space complexity here, e.g. $$O(n)$$ -->

# Code
```python3 []
class Solution:
    def splitMessage(self, message: str, limit: int) -> List[str]:
        N = len(message)
        min_suf_len = max_suf_len = 5

        while True:
            if max_suf_len >= limit:
                return []
            
            i = 9
            n = N
            parts = 0
            for l in range(min_suf_len, max_suf_len):
                part_len = limit - l
                n = n - (i * part_len)
                parts += i
                i *= 10

            part_len = limit - max_suf_len
            parts += ceil(n / part_len)
            if i * part_len >= n:
                break
            min_suf_len += 1
            max_suf_len += 2

        # print(parts)
        i = 0
        res = []
        for p in range(parts):
            suffix = '<' + str(p + 1) + '/' + str(parts) + '>'
            l = limit - len(suffix)
            tmp = message[i : i+l] + suffix
            i = i + l
            res.append(tmp)

        return res
            

```
['Python3']