#include<stdio.h>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cassert>
using namespace std;
char s[1048576];
char ori[1048576];
int n;
int last[1048576];
int cnt,head,sum;
inline bool check(){
	int tmp=0;
	for(int i=1;i<=n;i++){
		if(s[i]=='(')
			tmp++;
		if(s[i]==')')
			tmp--;
		if(tmp<0) return false;
	}
	if(tmp>0) return false;
	return true;
}
inline bool work(){
	//int p1=last[head];
	//head++;
	//int p2=last[head];
	int p1=0,p2=0;
	for(int i=1;i<=n;i++)
		if(s[i]=='?'){
			if(p1==0)
				p1=i;
			else
				p2=i;
		}
	s[p1]='(';
	s[p2]=')';
	if(!check())
		return false;
	s[p1]=')';
	s[p2]='(';
	if(!check())
		return false;
	return true;
}

int main(){
	while(scanf("%s",s+1)!=EOF){
		n=strlen(s+1);
		for(int i=1;i<=n;i++)
			ori[i]=s[i];
		if(n==0){
			puts("Unique");
			continue;
		}
		if(n&1){
			puts("None");
			continue;
		}
			sum=0,cnt=0,head=1;		
			bool flag=true;
			for(int i=1;i<=n;i++){
				if(s[i]=='(')
					sum++;
				if(s[i]=='?')
					last[++cnt]=i;
				if(s[i]==')'){
					if(sum>0) 
						sum--;
					else{
						if(cnt>=head){
							s[last[head]]='(';
							head++;
						}
						else{
							flag=false;
							break;
						}
					}
				}	
			}
		
			if(!flag){
				puts("None");		
				continue;
			}
			int temp=sum;
			int cnt2=0;
			for(int i=n;i>=1;i--){
				if(s[i]=='(')  cnt2--;
				if(cnt2<0){
					flag=false;
					break;
				}
				if(s[i]==')')	
					cnt2++;
				if(temp>0 && s[i]=='?')
					temp--,s[i]=')',cnt2++;	
			}
			if(cnt2>0) 
				flag=false;
			if(!flag){
				puts("None");
				continue;
			}
			int rest=0;
			for(int i=1;i<=n;i++)
				if(s[i]=='?')
					rest++;
			assert((rest%2)==0);
			if(rest==0)
				puts("Unique");
			if(rest>=4)
				puts("Many");
			if(rest==2){
				if(work())
					puts("Many");
				else	
					puts("Unique");
			}
	}
	return 0;
}

