#pragma once
// enumerate x : x \subset bvector<int>enumerate_subset(intb){vector<int>res;for(inti=b;i>=0;--i)res.push_back(i&=b);returnres;};// enumerate x : x \in {n} and x \superset bvector<int>enumerate_superset(intb,intn){vector<int>res;for(inti=b;i<(1<<n);i=(i+1)|b)res.push_back(i);returnres;}/**
* @brief 下位集合/上位集合の列挙
*/
#line 2 "set-function/enumerate-set.hpp"
// enumerate x : x \subset bvector<int>enumerate_subset(intb){vector<int>res;for(inti=b;i>=0;--i)res.push_back(i&=b);returnres;};// enumerate x : x \in {n} and x \superset bvector<int>enumerate_superset(intb,intn){vector<int>res;for(inti=b;i<(1<<n);i=(i+1)|b)res.push_back(i);returnres;}/**
* @brief 下位集合/上位集合の列挙
*/