For a set $S$ of integers, perform a sequence of the following operations. Note that each value in $S$ must be unique.

* insert($x$): Insert $x$ to $S$ and report the number of elements in $S$ after the operation.
* find($x$): Report the number of $x$ in $S$ (0 or 1).

Constraints

* $1 \leq q \leq 200,000$
* $0 \leq x \leq 1,000,000,000$

Input

The input is given in the following format.


$q$
$query_1$
$query_2$
:
$query_q$


Each query $query_i$ is given by


0 $x$


or


1 $x$


where the first digits 0 and 1 represent insert and find operations respectively.

Output

For each insert operation, print the number of elements in $S$.
For each find operation, print the number of specified elements in $S$.

Example

Input

7
0 1
0 2
0 3
0 2
0 4
1 3
1 10


Output

1
2
3
3
4
1
0
#include <bits/stdc++.h>
#define REP(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
template<class T>inline bool chmax(T &a, const T &b){if(a < b){a = b; return 1;}return 0;}
template<class T>inline bool chmin(T &a, const T &b){if(a > b){a = b; return 1;}return 0;}
typedef long long ll;

int main(){
  ios::sync_with_stdio(false);
  cin.tie(0);
  int q; cin >> q;
  set<int> s;
  vector<int> ans;
  REP(i, q){
    int Q, x; cin >> Q >> x;
    if(Q){
      if(s.find(x) != s.end()){
        ans.push_back(1);
      }else{
        ans.push_back(0);
      }
    }else{
      s.insert(x);
      ans.push_back(s.size());
    }
  }
  for(auto &i : ans) cout << i << endl;
}
