#include #include #include #include #include using namespace std ; typedef long long LL ; #define clr( a , x ) memset ( a , x , sizeof a ) #define ls ( o << 1 ) #define rs ( o << 1 | 1 ) #define root 1 , 1 , n #define lson ls , l , mid #define rson rs , mid + 1 , r const int MAXN = 10000005 ; const int MAXE = 200005 ; const LL INF = 1e18 ; struct Edge { int v , n ; Edge () {} Edge ( int v , int n ) : v ( v ) , n ( n ) {} } ; char c ; int a[10] ; int b[MAXN] ; void solve () { clr ( a , 0 ) ; while ( ( c = getchar () ) >= '0' && c <= '9' ) a[c - '0'] ++ ; int v = -1 ; for ( int i = 1 ; i < 10 ; ++ i ) { if ( a[i] ) { v = i ; a[i] -- ; break ; } } int n = 0 ; for ( int i = 0 ; i < 10 ; ++ i ) { while ( a[i] -- ) b[n ++] = i ; } if ( !n || b[n - 1] == 0 ) printf ( "Uncertain\n" ) ; else { b[n] = 0 ; b[0] += v ; for ( int i = 0 ; i < n ; ++ i ) { if ( b[i] >= 10 ) { b[i + 1] ++ ; b[i] -= 10 ; if ( i == n - 1 ) ++ n ; } } for ( int i = n - 1 ; i >= 0 ; -- i ) putchar ( b[i] + '0' ) ; puts ( "" ) ; } } int main () { int T ; scanf ( "%d" , &T ) ; getchar () ; for ( int i = 1 ; i <= T ; ++ i ) { solve () ; } return 0 ; }