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

// int main(){
//     //freopen("same_partity_summands.txt", "r", stdin);
// //     //freopen("CF_div4/output.txt", "w", stdout);
//  //   freopen(same_partity_summands.txt)

//     int t;
//      cin >> t;

//     for (int i = 0; i < t; i ++) {
//         int n;
//         cin >> n;

// //         cout << k + (k - 1) / (n-1) << endl;
// //     }

// }


// #include <bits/stdc++.h>

// using namespace std;

// int main()
// {
//     int n,mx=0,cnt=0,i,x;
//     cin>>n;
//     map<int,int>mp;
//     for(i=0;i<n;i++){
//         cin>>x;
//         mp[x]++;
//         if(mp[x]>mx)
//             mx=mp[x];
//     }
//     cout<<mx<<endl;
//     return 0;
// }

// #include "iostream"
// using namespace std;

// int main(){

//     freopen ("same_partity_summands.txt","r",stdin);
// int a,b,x,n;
// char u,v;
// cin>>a>>b>>x;

// n=a+b;
// if (a>b); u="0", v="1";
// else
// {
//     u="1", v="0"; swap(a,b);}
//     for(int i=0; i<x/2; i++) {cout<<u<<v; a--,b--;}
//     if(x%2==0){
//         while (b--)
//         {
//             cout<<v;

//         }
//         while (a--)
//         {
//             cout<<u;
//         }
//     else
//     {
//         while (a--)
//         {
//             cout<<u;
//         }
//     while (b--){
//         cout<<v;
//     }

//     return 0;
//     }

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

// int main() {

//     freopen ("same_partity_summands.txt","r",stdin);

//   int a, b, x;
//   cin >> a >> b >> x;

//   string s;
//   if(a > b)
//     s = "0", --a;
//   else
//     s = "1", --b;
//   for(int i = 0; i < x; ++i) {
//     if(b > 0 && s.back() == '0')

//       --b, s += '1';
//     else if(a > 0)

//       --a, s += '0';
//   }

//   for(int i = 0; i < s.length(); ++i) {
//     cout << s[i];
//     if(a > 0 && s[i] == '0')
//       while(a-- != 0)
//        cout << '0';

//     if(b > 0 && s[i] == '1')
//       while(b-- != 0)
//         cout << '1';
//   }

//   cout << endl;
//   return 0;
// }

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


// int main()
// {
//     int n;
//     int m;
// ss
//     cin >>n>>m;

//     if(n==m){
//         cout>>"Yes"
//     }
//     else
//     {
//         cout>>"Ne"
//     }
    

    // freopen("same_partity_summands.txt", "r", stdin);

    // int const N = 5001;
    // int n,k,a[N],cs[N];
    // cin >>n>>k;
    // for(int i =0;i<n; ++i){
    //     cin>>a[i];
    // }
    // for (int i = 1; i<=n; ++i){
    //     cs[i] = cs[i-1]+a[i-1];
    // }
    // long double res = 0; one=1.0;
    // for(int i =1; i<=n;++i){
    //     for(int j=i;j<=n;++j){
    //         if(j-i+1<k)
    //         continue;
        
    //     res = max(res,one*(cs[j]-cs[i-1])/(j-i+1));
    //     }
    // }
    //        cout <<setprecision(10)<<res<<endl;
//}

// #include <bits/stdc++.h>

// using namespace std;

// int main()
// {
//     ios::sync_with_stdio(0);
//     cin.tie(0);
//   //  freopen("same_partity_summands.txt", "r", stdin);
  
//     int a, b;
//     cin >> a >> b;
//     string res1 = "";
//     for (int i = 0; i < a; i ++)
//         res1 += to_string(b);
    
//     string res2 = "";
//     for (int j = 0; j < b; j ++)
//         res2 += to_string(a);

//     cout << ((res1>res2) ? res2 : res1);
    
//     return 0;
// }


// svi prije njega veci ili jednaki 
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i =0;i<(n);++i)
typedef long long ll;
 
int main(){

    //freopen("same_partity_summands.txt", "r", stdin);

int n;
cin >> n;
vector<int> p(n);
rep(i,n) cin >>p[i];
int ans = 0;
int curMin = 1e9;
rep(i,n){
    curMin = min(curMin,p[i]);
    if (curMin == p[i]) ans++;
}
cout<<ans;
return 0;
//cout << "KURAC";

}

Measured memory_bytes: 1024