description: Alice and Bob are playing a game. They are given an array A of length N. The array consists of integers. They are building a sequence together. In the beginning, the sequence is empty. In one turn a player can remove a number from the left or right side of the array and append it to the sequence. The rule is that the sequence they are building must be strictly increasing. The winner is the player that makes the last move. Alice is playing first. Given the starting array, under the assumption that they both play optimally, who wins the game?
  
  Input
  
  The first line contains one integer N (1 ≤ N ≤ 2*10^5) - the length of the array A.
  
  The second line contains N integers A_1, A_2,...,A_N (0 ≤ A_i ≤ 10^9)
  
  Output
  
  The first and only line of output consists of one string, the name of the winner. If Alice won, print "Alice", otherwise, print "Bob".
  
  Examples
  
  Input
  
  
  1
  5
  
  
  Output
  
  
  Alice
  
  
  Input
  
  
  3
  5 4 5
  
  
  Output
  
  
  Alice
  
  
  Input
  
  
  6
  5 8 2 1 10 9
  
  
  Output
  
  
  Bob
solution: // Don't place your source in a package
  
  
  import javax.swing.*;
  import java.lang.reflect.Array;
  import java.text.DecimalFormat;
  import java.util.*;
  import java.lang.*;
  import java.io.*;
  import java.math.*;
  import java.util.stream.Stream;
  
  
  
  // Please name your class Main
  public class Main {
      static FastScanner fs=new FastScanner();
      static class FastScanner {
          BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
          StringTokenizer st=new StringTokenizer("");
          public String next() {
              while (!st.hasMoreElements())
                  try {
                      st=new StringTokenizer(br.readLine());
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              return st.nextToken();
          }
          int Int() {
              return Integer.parseInt(next());
          }
  
          long Long() {
              return Long.parseLong(next());
          }
  
          String Str(){
              return next();
          }
      }
  
  
      public static void main (String[] args) throws java.lang.Exception {
          PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
          //reading /writing file
          //Scanner sc=new Scanner(new File("src/text.txt"));
          //PrintWriter pr=new PrintWriter("output.txt");
          //File file = new File("src/text.txt");
          int T=1;
          for(int t=0;t<T;t++){
              Solution sol1=new Solution(out,fs);
              sol1.solution();
          }
          out.flush();
  
      }
  
  
      public static int[] Arr(int n){
          int A[]=new int[n];
          for(int i=0;i<n;i++)A[i]=Int();
          return A;
      }
      public static int Int(){
          return fs.Int();
      }
      public static long Long(){
          return fs.Long();
      }
      public static String Str(){
          return fs.Str();
      }
  
  }
  
  
  
  
  
  
  
  
  class Solution {
      PrintWriter out;
      int INF = 10000000;
      int MOD = 998244353 ;
      long mod = 1000000007;
      Main.FastScanner fs;
      public Solution(PrintWriter out,Main.FastScanner fs) {
          this.out = out;
          this.fs=fs;
      }
  
  
  
      public void solution() {
  
           int n =fs.Int();
           int A[]=new int[n];
           for(int i = 0;i<n;i++){
               A[i]=fs.Int();
           }
  
           String a = "Alice";
           String b = "Bob";
           int lcnt=1,rcnt=1;
  
  
  
           for(int i=1;i<n;i++){
               if(A[i]>A[i-1])lcnt++;
               else break;
           }
           for(int i = n-2;i>=0;i--){
               if(A[i]>A[i+1])rcnt++;
               else break;
           }
  
          /*if(A[0]==586741626  ){
              out.println(lcnt);
              out.println(A[n-1]+" "+A[n-2]+"   "+rcnt);
          }*/
  
           int l = 0, r = n - 1;
           int pre = -1;
           int move = 0;
  
           while(l<=r){
               if(A[l]<=pre&&A[r]<=pre){
                   break;
               }
               if(A[l]<A[r]){
                   if(rcnt % 2 == 1){
                       if(move%2==0){
                           out.println(a);
                           return;
                       }
                       else{
                           out.println(b);
                           return;
                       }
                   }
                   else{
                       if(A[l]>pre){
                           pre = A[l];
                           lcnt--;
                           l++;
                       }
                       else{
                           break;
                       }
                   }
               }
               else if(A[l]>A[r]){
                   if(lcnt % 2 == 1){
                       if(move%2==0){
                           out.println(a);
                           return;
                       }
                       else{
                           out.println(b);
                           return;
                       }
                   }
                   else{
                       if(A[r]>pre){
                           pre = A[r];
                           rcnt--;
                           r--;
                       }
                       else{
                           break;
                       }
                   }
               }
               else{
                   if(lcnt%2==1 || rcnt%2==1){
                       if(move%2==0){
                           out.println(a);
                           return;
                       }
                       else{
                           out.println(b);
                           return;
                       }
                   }
                   else{//lost
                       if(move%2==0){
                           out.println(b);
                           return;
                       }
                       else{
                           out.println(a);
                           return;
                       }
                   }
               }
               //System.out.println(l+" "+r);
               move++;
           }
  
  
           if(move%2==0){
               out.println(b);
           }
           else{
               out.println(a);
           }
      }
  
  
  }
  
  //586741626 750952717 132065682 1 10 102407897 89016446