/*
模拟/字符串处理:主要是对*的处理,先把乘的预处理后再用加法,比如说是:1+2*3+4 = 1+..6+4 = 11
*/
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <map>
#include <queue>
using namespace std; typedef long long ll;
const int MAXN = 1e2 + ;
const int INF = 0x3f3f3f3f;
char s[MAXN];
int len; void solve(void)
{
int p1 = , p2 = ;
for (int i=; i<=len; ++i)
{
if (s[i] == '*')
{
p1 = p2 = i;
while (p1 >= && s[p1] != '+') p1--; p1++;
while (p2 <= len && s[p2] != '+') p2++; p2--;
ll tmp = ;
for (int j=p1; j<=p2; j+=)
{
if (j == p1) tmp = s[j] - '';
else tmp = tmp * (s[j] - '');
}
// printf ("p1: %d p2: %d\ntmp: %d\n", p1, p2, tmp);
int p = p2;
while (tmp)
{
s[p--] = tmp % + '';
tmp /= ;
}
for (int j=p1; j<=p; ++j) s[j] = '.';
}
}
} int main(void) //UVALive 6833 Miscalculation
{
// freopen ("B.in", "r", stdin); while (scanf ("%s", s + ) == )
{
ll y; scanf ("%lld", &y);
ll sum_l = , sum_m = ; len = strlen (s + ); char op; int x = ;
for (int i=; i<=len; ++i)
{
if (i & )
{
if (i == ) sum_l = s[i] - '';
else
{
if (op == '+') sum_l += s[i] - '';
else sum_l = sum_l * (s[i] - '');
}
}
else op = s[i];
} solve ();
for (int i=; i<=len; ++i)
{
if (s[i] == '.' || s[i] == '+') continue;
else if (s[i] >= '' && s[i] <= '')
{
ll res = ; int j;
for (j=i; j<=len; ++j)
{
if (s[j] == '+') break;
res = res * + (s[j] - '');
}
sum_m += res;
i = j - ;
}
} if (y == sum_l && y == sum_m) puts ("U");
else if (y != sum_l && y != sum_m) puts ("I");
else
{
if (y == sum_l) puts ("L");
else puts ("M");
} // printf ("%s\n", s + 1);
// printf ("%lld %lld \n", sum_l, sum_m);
} return ;
}