Problem:
Score : 300 points

Problem Statement

Given is a permutation P_1, \ldots, P_N of 1, \ldots, N.
Find the number of integers i (1 \leq i \leq N) that satisfy the following condition:

For any integer j (1 \leq j \leq i), P_i \leq P_j.

Constraints

1 \leq N \leq 2 \times 10^5

P_1, \ldots, P_N is a permutation of 1, \ldots, N.

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
P_1 ... P_N

Output

Print the number of integers i that satisfy the condition.

Sample Input 1

5
4 2 5 1 3

Sample Output 1

3

i=1, 2, and 4 satisfy the condition, but i=3 does not - for example, P_i > P_j holds for j = 1.

Similarly, i=5 does not satisfy the condition, either. Thus, there are three integers that satisfy the condition.

Sample Input 2

4
4 3 2 1

Sample Output 2

4

All integers i (1 \leq i \leq N) satisfy the condition.

Sample Input 3

6
1 2 3 4 5 6

Sample Output 3

1

Only i=1 satisfies the condition.

Sample Input 4

8
5 7 4 2 6 8 1 3

Sample Output 4

4

Sample Input 5

1
1

Sample Output 5

1

Solution in Python (3.4.3) (judge verdict: Accepted)

"""
問題自体は単純で、配列Pを先頭から見ていき、
見ている箇所より左側（インデックス番号が見ている箇所より小さいもの）が
すべて見ている値よりも大きければ答えをカントアップ。
配列全てを確認し終わった時点の答えを出力すれば良い。

ただし、Pの最大サイズが 2 × 10**5 なので、

for i in range(N):
    for j in range(i):
        if P[i] < P[j]:
            ans +=1
            
などとすると、　N ** 2 ≒ 10 ** 10 となり間に合わない。
ので、以下のソースのように、確認するインデックス（ i )より
左側の最小値を for文を使用せず保持して比較していけば、
計算量が N になるため、十分に間に合う。
"""


def main():
    # 入力の取得
    N = int(input())
    P = list(map(int, input().split()))

    # i = 0 (配列の先頭の値)は常に条件が成立するので、
    # 答えをカウントアップしておき、for文は i = 1から回す。
    ans = 1

    # 見ている箇所より前の部分までの最小値を保持しておく。
    # for文を回し始める時（i = 1 の時）、確認する箇所より左側は
    # インデックスが０の値しかないので、それを最小値として保持しておく。
    min_val = P[0]

    # インデックス１から配列Pを順番に確認していく。
    for i in range(1, N):
        # インデックス i - 1までのうち最小の値と比較
        if P[i] <= min_val:
            # 成立しているので答えをカウントアップ
            ans += 1

            # インデックス i - 1までの最小値よりも小さいので、最小値を更新
            min_val = P[i]

            # 問題文から、Pは１以上の値しかとらず、値の被りがないので、
            # 値；１が出てきたらそれ以降は常にP[i] > 1 となるので比較するだけ無駄。
            # なので、for文を終了させる。（この処理はなくても間に合うはず）
            if min_val == 1:
                break

    # 答えを出力
    print(ans)


if __name__ == "__main__":
    main()