#include <bits/stdc++.h>
using namespace std;
#define debug(a) std::cerr << "\033[34m" << #a << ':' << a << "\033[0m" << std::endl
typedef long long ll;
const int N = 1e7 + 10;
const int inf = 0x3f3f3f3f;
const long long llinf = (long long)0x3f3f3f3f3f3f3f3f;
ll T, n, m, k, x, y;
ll a[N];
char s[N];
char c;
void solve () {
cin >> x;
cout << x - 1 << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> T;
while (T--) {
solve();
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define debug(a) std::cerr << "\033[34m" << #a << ':' << a << "\033[0m" << std::endl
typedef long long ll;
const int N = 1e7 + 10;
const int inf = 0x3f3f3f3f;
const long long llinf = (long long)0x3f3f3f3f3f3f3f3f;
ll T, n, m, k, x, y;
ll a[N];
char s[N];
char c;
void solve () {
cin >> n >> k;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
ll f = 1;
for (int i = 0; i < n; i++) {
if (a[i] == f) {
f++;
}
}
cout << (n - f + k) / k << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> T;
while (T--) {
solve();
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define debug(a) std::cerr << "\033[34m" << #a << ':' << a << "\033[0m" << std::endl
typedef long long ll;
const int N = 1e7 + 10;
const int inf = 0x3f3f3f3f;
const long long llinf = (long long)0x3f3f3f3f3f3f3f3f;
ll T, n, m, k, x, y;
ll a[N];
char s[N];
char c;
void solve () {
int n;
cin >> n;
int a[n + 2];
vector <int> idx[n + 2];
int cnt[n + 2];
memset(cnt, 0, sizeof cnt);
int p[n + 2], q[n + 2];
for (int i = 1; i <= n; i++) {
cin >> a[i];
cnt[a[i]]++;
idx[a[i]].push_back(i);
}
bool f = 1;
int vlup = 1, vluq = 1;
unordered_map <int, int> markp, markq;
for (int i = 1; i <= n; i++) {
if (!cnt[i]) continue;
while (markp[vlup])
vlup++;
while (markq[vluq])
vluq++;
if (vlup > n || vluq > n) {
f = 0; break;
}
if (cnt[i] == 1) {
p[idx[i][0]] = i;
q[idx[i][0]] = i;
markp[i] = 1;
markq[i] = 1;
}
else if (cnt[i] == 2) {
if (vlup >= i && vluq >= i) {
f = 0; break;
}
markp[i] = 1, markq[vluq] = 1;
p[idx[i][0]] = i;
q[idx[i][0]] = vluq++;
markp[vlup] = 1, markq[i] = 1;
p[idx[i][1]] = vlup++;
q[idx[i][1]] = i;
}
else {
f = 0; break;
}
}
if (f) {
cout << "YES\n";
for (int i = 1; i <= n; i++) {
cout << p[i] << ' ';
}
cout << '\n';
for (int i = 1; i <= n; i++) {
cout << q[i] << ' ';
}
cout << '\n';
}
else cout << "NO\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> T;
while (T--) {
solve();
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define debug(a) std::cerr << "\033[34m" << #a << ':' << a << "\033[0m" << std::endl
typedef long long ll;
const int N = 1e7 + 10;
const int inf = 0x3f3f3f3f;
const long long llinf = (long long)0x3f3f3f3f3f3f3f3f;
ll T, n, m, k, x, y;
ll a[N], f[N], w[N];
char s[N];
char c;
int find (int x)
{
if (x == f[x]) {
return x;
}
return f[x] = find (f[x]);
}
void solve () {
cin >> n;
for (int i = 1; i <= n; i++) {
f[i] = i, w[i] = 1;
}
for(int i = 1; i <= n; i++) {
cin >> a[i];
int t1 = find (a[i]), t2 = find (i);
if (t1 != t2) {
f[t1] = t2;
w[t2] += w[t1];
}
}
bool f2 = 0;
for (int i = 1; i < n; i++) {
if (find (i) == find (i+1))
f2=1;
}
int cnt = 0;
for (int i = 1; i <= n; i++){
if (f[i] == i && w[i] >= 2)
cnt += w[i] - 1;
}
if(f2)
cout << cnt - 1 << endl;
else
cout << cnt + 1 << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> T;
while (T--) {
solve();
}
return 0;
}