#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class ProductOfNumbers{
public :
vector< int > v;
ProductOfNumbers( ) {
v.push_back ( 1 ) ;
}
void add( int num) {
if ( num== 0 ) {
v.clear ( ) ;
v.push_back ( 1 ) ;
}
else {
v.push_back ( num * v.back ( ) ) ;
}
}
int getProduct( int k) {
if ( v.size ( ) <= k) {
return 0 ;
}
return v[ v.size ( ) - 1 ] / v[ v.size ( ) - 1 - k] ;
}
}
;
// cLay varsion 20200214-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class ProductOfNumbers {
// public:
// vector<int> v;
// ProductOfNumbers() {
// v.push_back(1);
// }
//
// void add(int num) {
// if(num==0){
// v.clear();
// v.push_back(1);
// } else {
// v.push_back(num * v.back());
// }
// }
//
// int getProduct(int k) {
// if(v.size() <= k) return 0;
// return v[v.size()-1] / v[v.size()-1-k];
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgUHJvZHVjdE9mTnVtYmVyc3sKICBwdWJsaWM6CiAgdmVjdG9yPGludD4gdjsKICBQcm9kdWN0T2ZOdW1iZXJzKCl7CiAgICB2LnB1c2hfYmFjaygxKTsKICB9CiAgdm9pZCBhZGQoaW50IG51bSl7CiAgICBpZihudW09PTApewogICAgICB2LmNsZWFyKCk7CiAgICAgIHYucHVzaF9iYWNrKDEpOwogICAgfQogICAgZWxzZXsKICAgICAgdi5wdXNoX2JhY2sobnVtICogdi5iYWNrKCkpOwogICAgfQogIH0KICBpbnQgZ2V0UHJvZHVjdChpbnQgayl7CiAgICBpZih2LnNpemUoKSA8PSBrKXsKICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICByZXR1cm4gdlt2LnNpemUoKS0xXSAvIHZbdi5zaXplKCktMS1rXTsKICB9Cn0KOwovLyBjTGF5IHZhcnNpb24gMjAyMDAyMTQtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBjbGFzcyBQcm9kdWN0T2ZOdW1iZXJzIHsKLy8gcHVibGljOgovLyAgIHZlY3RvcjxpbnQ+IHY7Ci8vICAgUHJvZHVjdE9mTnVtYmVycygpIHsKLy8gICAgIHYucHVzaF9iYWNrKDEpOwovLyAgIH0KLy8gCi8vICAgdm9pZCBhZGQoaW50IG51bSkgewovLyAgICAgaWYobnVtPT0wKXsKLy8gICAgICAgdi5jbGVhcigpOwovLyAgICAgICB2LnB1c2hfYmFjaygxKTsKLy8gICAgIH0gZWxzZSB7Ci8vICAgICAgIHYucHVzaF9iYWNrKG51bSAqIHYuYmFjaygpKTsKLy8gICAgIH0KLy8gICB9Ci8vIAovLyAgIGludCBnZXRQcm9kdWN0KGludCBrKSB7Ci8vICAgICBpZih2LnNpemUoKSA8PSBrKSByZXR1cm4gMDsKLy8gICAgIHJldHVybiB2W3Yuc2l6ZSgpLTFdIC8gdlt2LnNpemUoKS0xLWtdOwovLyAgIH0KLy8gfTsK