program candy_piles
  implicit none
  integer :: n, a(100000) = 0, i, k, h, v = 0
  read(*,*) n
  read(*,*) a(1:n)
  call bitonic_sort(a(1:n),.false.)
  k = n-1
  do i = 1, n-1
    if (a(i) > i .and. a(i+1) <= i+1) then
      k = i
      exit
    end if
  end do
  h = a(k+1)-(k+1)
  do i = k+2, n
    if (a(i) <= k) exit
    v = v+1
  end do
  if (mod(h,2) == 0 .and. mod(v,2) == 0) then
    write(*,'(a)') "Second"
  else
    write(*,'(a)') "First"
  end if
contains
  recursive subroutine bitonic_sort(a,ascend)
    integer, intent(inout) :: a(:)
    logical, intent(in) :: ascend
    integer :: n
    n = size(a)
    if (n == 1) return
    call bitonic_sort(a(1:n/2),.not.ascend)
    call bitonic_sort(a(n/2+1:n),ascend)
    call bitonic_merge(a,ascend)
  end
  recursive subroutine bitonic_merge(a,ascend)
    integer, intent(inout) :: a(:)
    logical, intent(in) :: ascend
    integer :: n, m, i, b
    n = size(a)
    if (n == 1) return
    m = 1
    do while (2*m < n)
      m = 2*m
    end do
    do i = 1, n-m
      if ((a(i) > a(i+m)) .eqv. ascend) then
        b = a(i)
        a(i) = a(i+m)
        a(i+m) = b
      end if
    end do
    call bitonic_merge(a(1:m),ascend)
    call bitonic_merge(a(m+1:n),ascend)
  end
end program candy_piles