#pragma once
// This file is a fork of AtCoder Library.#define E6NLAQ_INTERNAL_QUEUE_HPP
#include<vector>namespacee6nlaq{namespaceinternal{template<classT>structsimple_queue{std::vector<T>payload;intpos=0;voidreserve(intn){payload.reserve(n);}intsize()const{returnint(payload.size())-pos;}boolempty()const{returnpos==int(payload.size());}voidpush(constT&t){payload.push_back(t);}T&front(){returnpayload[pos];}voidclear(){payload.clear();pos=0;}voidpop(){pos++;}};}// namespace internal}// namespace e6nlaq
#line 2 "include/e6nlaq/internal/queue.hpp"
// This file is a fork of AtCoder Library.#define E6NLAQ_INTERNAL_QUEUE_HPP
#include<vector>namespacee6nlaq{namespaceinternal{template<classT>structsimple_queue{std::vector<T>payload;intpos=0;voidreserve(intn){payload.reserve(n);}intsize()const{returnint(payload.size())-pos;}boolempty()const{returnpos==int(payload.size());}voidpush(constT&t){payload.push_back(t);}T&front(){returnpayload[pos];}voidclear(){payload.clear();pos=0;}voidpop(){pos++;}};}// namespace internal}// namespace e6nlaq