#include <iostream>
#include <string>
#include <assert.h>
template <class Chunkedseq>
void pcopy(
typename Chunkedseq::iterator first,
 
           typename Chunkedseq::iterator last,
           Chunkedseq& destination) {
  using iterator = typename Chunkedseq::iterator;
  using ptr = typename Chunkedseq::const_pointer;
  
  const long cutoff = 8192;
  
  long sz = last.size() - first.size();
  
  if (sz <= cutoff) {
    
    
      destination.pushn_back(lo, hi-lo);
    });
    
  } else {
    
    
    iterator mid = first + (sz/2);
    
    Chunkedseq destination2;
    
    
    
    pcopy(first, mid,  destination);
 
    pcopy(mid,   last, destination2);
 
    
    
    destination.concat(destination2);
    
  }
}
int main(
int argc, 
const char * argv[]) {
 
  
  const int chunk_size = 2;
  
  
  
  std::cout << "mydeque2 contains:";
  auto p = mydeque2.
begin();
 
  while (p != mydeque2.
end())
 
    std::cout << " " << *p++;
  std::cout << std::endl;
  
  return 0;
  
}