#include <bits/stdc++.h>

using namespace std;

#define MAX 1002
#define INF 1e9+1

int main(){
  int N,arr[MAX];
  string str;
  while(cin >> N, N){
    bool x[MAX] = {false};
    arr[0] = INT_MAX;
    arr[N+1] = (N % 2 ? INT_MAX : INT_MIN);  
    bool can = true;
    for(int i = 1 ; i <= N ; i++){
      cin >> str;
      if(str[0] == 'x'){
        x[i] = true;
        arr[i] = INT_MAX;
      }else{
        stringstream ss(str);
        int x; ss >> x;
        arr[i] = x;
      }
      if(i > 0){
        if(x[i-1] && x[i]){
          can = false;
        }
      }
    }
    if(!can){
      cout << "none" << endl;
      continue;
    }else if(count(x+1,x+N+1,true) == 0){
      bool check = false;
      for(int i = 1 ; i <= N ; i++){
        if(i % 2){
          if(!(arr[i-1] > arr[i] && arr[i+1] > arr[i])){
            check = true;
            break;
          }
        }else{
          if(!(arr[i-1] < arr[i] && arr[i+1] < arr[i])){
            check = true;
            break;
          }
        }
      }
      cout << (check ? "none" : "ambiguous") << endl;
      continue;
    }
    for(int i = 1 ; i <= N ; i++){
      if(x[i]) continue;
      if(i % 2){
        if(!x[i-1] && !x[i]){
          if(!(arr[i-1] > arr[i])){
            can = false;
            break;
          }
        }
        if(!x[i] && !x[i+1]){
          if(!(arr[i+1] > arr[i])){
            can = false;
            break;
          }
        }
      }else{
        if(!x[i-1] && !x[i]){
          if(!(arr[i-1] < arr[i])){
            can = false;
            break;
          }
        }
        if(!x[i] && !x[i+1]){
          if(!(arr[i+1] < arr[i])){
            can = false;
            break;
          }
        }
      }
    }
    if(!can){
      cout << "none" << endl;
      continue;
    }
    bool found = false;
    int l = -1e9-2,r = 1e9+2, m,ans;
    while(r - l >= 0){
      m = (l + r) / 2;
      bool small = false, large = false;
      for(int i = 1 ; i <= N ; i++){
        int bv = (x[i-1] ? m : arr[i-1]);
        int cv = (x[i] ? m : arr[i]);
        int nv = (x[i+1] ? m : arr[i+1]);
        if(!x[i]) continue;
        if(i % 2){
          if(!(bv > cv && nv > cv)){
            small = true;
            break;
          }
        }else{
          if(!(bv < cv && nv < cv)){
            large = true;
            break;
          }
        }
      }
      if(!small && !large){
        found = true;
        break;
      }else if(small){
        r = m-1;
      }else{
        l = m+1;
      }
    }
  
    if(!found){
      cout << "none" << endl;
    }else{
      found = false;
      ans = m;
      l = -1e9-5, r = ans-1;
      while(r - l > 0){
        m = (l + r) / 2;
        bool small = false, large = false;
        for(int i = 1 ; i <= N ; i++){
          int bv = (x[i-1] ? m : arr[i-1]);
          int cv = (x[i] ? m : arr[i]);
          int nv = (x[i+1] ? m : arr[i+1]);
          if(!x[i]) continue;
          if(i % 2){
            if(!(bv > cv && nv > cv)){
              small = true;
              break;
            }
          }else{
            if(!(bv < cv && nv < cv)){
              large = true;
              break;
            }
          }
        }
        if(!small && !large){
          found = true;
          break;
        }else if(small){
          r = m-1;
        }else{
          l = m+1;
        }
      }
      l = ans+1, r = 1e9+5;
      while(r - l > 0){
        m = (l + r) / 2;
        bool small = false, large = false;
        for(int i = 1 ; i <= N ; i++){
          int bv = (x[i-1] ? m : arr[i-1]);
          int cv = (x[i] ? m : arr[i]);
          int nv = (x[i+1] ? m : arr[i+1]);
          if(!x[i]) continue;
          if(i % 2){
            if(!(bv > cv && nv > cv)){
              small = true;
              break;
            }
          }else{
            if(!(bv < cv && nv < cv)){
              large = true;
              break;
            }
          }
        }
        if(!small && !large){
          found = true;
          break;
        }else if(small){
          r = m-1;
        }else{
          l = m+1;
        }
      }
      if(found){
        cout << "ambiguous" << endl;
      }else{
        cout << ans << endl;
      }
    }
  }
  return 0;
}

Measured memory_bytes: 1220