#include <string>
#include <iostream>
#include <boost/mpl/fold.hpp>
#include <boost/mpl/plus.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/type_traits.hpp>
using namespace std;
using namespace boost;
using namespace boost::mpl;
using namespace boost::type_traits;
typedef vector<long,float,short,double,float,long,long double> types;
typedef fold<
types
, int_<0>
, if_< is_float<_2>,next<_1>,_1 >
>::type number_of_floats;
BOOST_MPL_ASSERT_RELATION( number_of_floats::value, ==, 4 );
int main(){
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKI2luY2x1ZGUgPGJvb3N0L21wbC9mb2xkLmhwcD4KI2luY2x1ZGUgPGJvb3N0L21wbC9wbHVzLmhwcD4KI2luY2x1ZGUgPGJvb3N0L21wbC92ZWN0b3IuaHBwPgojaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMuaHBwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIGJvb3N0Owp1c2luZyBuYW1lc3BhY2UgYm9vc3Q6Om1wbDsKdXNpbmcgbmFtZXNwYWNlIGJvb3N0Ojp0eXBlX3RyYWl0czsKCnR5cGVkZWYgdmVjdG9yPGxvbmcsZmxvYXQsc2hvcnQsZG91YmxlLGZsb2F0LGxvbmcsbG9uZyBkb3VibGU+IHR5cGVzOwp0eXBlZGVmIGZvbGQ8CiAgICAgIHR5cGVzCiAgICAsIGludF88MD4KICAgICwgaWZfPCBpc19mbG9hdDxfMj4sbmV4dDxfMT4sXzEgPgogICAgPjo6dHlwZSBudW1iZXJfb2ZfZmxvYXRzOwoKQk9PU1RfTVBMX0FTU0VSVF9SRUxBVElPTiggbnVtYmVyX29mX2Zsb2F0czo6dmFsdWUsID09LCA0ICk7CgppbnQgbWFpbigpewp9Cg==