#include <iostream>

template<typename T>
constexpr int int_n(T x){
return 1;
}

template<typename T, typename... m>
constexpr int int_n(T x,m... hvost){
return 1+int_n(hvost...);
}
constexpr int str_n( const char* s){
   int u=0;
   while(*s!=0){
      if (*s=='%') u++;
      s++;
   }
   return u;
}

#define print_test(a,b...)  {static_assert(int_n(b)==str_n(a),"err");printf(a,b);}

int main(int argc, char** argv)
{


      print_test("%d %d %c %d %d\n",7,4,'d',123,0);
      print_test("%d %c %d %d\n",7,4,'d',123,0);
      print_test("%d %d\n",4,'d');

}