// Add or remove includes
#include <iostream>
#include <vector>

using namespace std;

// Adapt the header of the function to your case
void sumaparcial(const vector<int> &A, int &p, int &q);

string vec2string(const vector<int> &v) {
    if (v.empty()) return "[]";

    string r = "[" + to_string(v[0]);
    for (unsigned int i=1; i<v.size(); ++i) r += ", "+ to_string(v[i]);
    r += "]";
    return r;
}

// Adapt the call to 'function_name' and the way it is called to your case.
int main()  {
    
  string test;
  cin >> test;
    
  vector<vector<int>> A = {{1,2,3,4,5,6,7,8},
                           {1,2,3,6,12,24,48,96},
                           {1,2,4,6,10},
                          };

  int n;
  if (test!="test1") {
     n = 10000000;
     // 1 2 2 2 2 2 2 2
     vector<int> x(n,2);
     x[0] = 1;
     A.push_back(x);

     n = 1000000;
     // 1 2 2 2 2 2 ... 2 n
     x = vector<int>(n,2);
     x[0] = 1;
     x.push_back(n);
     A.push_back(x);
  
     // 1 2 2 2 ... 2 n+1  
     x[n] = n+1;
     A.push_back(x);
  
     //  1 2 3 4 5 6 7 8 9 .... n-1
     n = 100000;
     x = vector<int>(n);
     for (int i=0; i<n; ++i) x[i]=i;
     A.push_back(x);
  }
    
  int p,q;
  for (unsigned int i=0; i<A.size(); ++i) {
     sumaparcial(A[i],p,q);
     if (test=="test1") cout << "Call: sumaparcial(" << vec2string(A[i]) << ", p, q)" << endl;
     cout << "Result: p=" << p << ", q=" << q << endl;
     cout << endl;
  } 
}
