from collections import deque def count_possible_strings(s): n = len(s) visited = set() queue = deque() visited.add(s) queue.append(s) while queue: current = queue.popleft() for i in range(n): for j in range(i+1, n+1): t = current[i:j] t0 = t.count('0') t1 = t.count('1') for k in range(j, n): for l in range(k+1, n+1): u = current[k:l] u0 = u.count('0') u1 = u.count('1') if t0 == u0 and t1 == u1: new_str = current[:i] + u + current[j:k] + t + current[l:] if new_str not in visited: visited.add(new_str) queue.append(new_str) return len(visited) s = input().strip() print(count_possible_strings(s))