#include <bits/stdc++.h>
using namespace std;

int expr(int l,int m,int r);
int term(int l,int m,int r);
int factor(int l,int m,int r);
int powexpr(int l,int m,int r);
int fraction(int l,int m,int r);
int primary(int l,int m,int r);
int digit(int l,int m,int r);

const int MOD = 2011;
string s[100];
int p,h,w;

int POW(int x,int n){
    int res=1;
    for(int i=0;(1<<i)<=n;i++){
        if((n>>i)&1) res=(res*x)%MOD;
        x=(x*x)%MOD;
    }
    return res;
}
int g_A(int l,int m,int r){
    for(;p<w;p++){
        for(int i=l;i<r;i++){
            if(s[i][p]!='.'){
                return expr(l,i,r);
            }
        }
    }
}
int expr(int l,int m,int r){
    int t=term(l,m,r);

    while(s[m][p]=='+' || s[m][p]=='-'){
        char tc=s[m][p];
        p+=2;
        int res=term(l,m,r);
        if(tc=='+') t=(t+res)%MOD;
        if(tc=='-') t=(t-res+MOD)%MOD;
    }

    return t;
}
int term(int l,int m,int r){
    int t=factor(l,m,r);

    while( s[m][p]=='*' ){
        p+=2;
        int res=factor(l,m,r);
        t=(t*res)%MOD;
    }

    return t;
}
int factor(int l,int m,int r){

    if(s[m][p]=='-'&&s[m][p+1]=='-'){
        return fraction(l,m,r);
    }

    else if(s[m][p]=='-'){
        p+=2;
        return (MOD - factor(l,m,r)) % MOD;
    }

    return powexpr(l,m,r);

}

int powexpr(int l,int m,int r){
    int t=primary(l,m,r);
    if(s[m][p]=='.'){
        if(m-1>=l && p && m && isdigit(s[m-1][p-1])){
            t=POW(t,s[m-1][p-1]-'0');
            p++;
        }
    }
    return t;
}

int primary(int l,int m,int r){
    if(s[m][p]=='('){
        p+=2;
        int t=expr(l,m,r);
        p+=2;
        return t;
    }
    else{
        int t=digit(l,m,r);
        p+=2;
        return t;
    }
}

int fraction(int l,int m,int r){
    int tmp=p;
    int A=g_A(l,0,m);
    p=tmp;
    int B=g_A(m+1,0,r);
    p=tmp;
    while(p<w && s[m][p]=='-') p++; p++;
    return ( A * POW(B,MOD-2) ) % MOD; 
}

int digit(int l,int m,int r){
    return s[m][p]-'0';
}

signed main(){
    while(cin>>h,h){
        p=0;
        for(int i=0;i<h;i++) cin>>s[i] , s[i]+="....@@" ;
        w=s[0].size()-5;
        cout<<g_A(0,0,h)<<endl;
    }
}
