#include using namespace std; typedef long long ll; vector attacks; ll damage(ll k){ ll result = k; for(size_t i = 0; i < attacks.size() - 1; ++i){ result += min(k, attacks[i+1] - attacks[i]); } return result; } void test_case(int tc){ cout << "test"; int n; ll h; cin >> n >> h; attacks.clear(); attacks.reserve(n); for(int i = 0; i < n; ++i){ cin >> attacks[i]; } ll lower = 1, upper = 1e18; ll middle = (lower + upper) / 2; ll dx = middle - lower; ll k; while(dx > 0){ k = damage(middle); cout << k << " "; if(k == h){ break; } else if(k < h){ lower = middle + 1; } else{ upper = middle; } middle = (lower + upper) / 2; dx = middle - lower; } cout << '\n' << k << '\n'; } int main(){ ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; for(int tc = 1; tc <= t; ++tc){ test_case(tc); } cout << flush; return 0; }