1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int maxn = 2*1e5+5; 5 vector<int>p[maxn]; 6 vector<int>c; 7 bool check[maxn]; 8 9 10 void dfs(int x) { 11 check[x] = true; 12 c.push_back(x); 13 for (int i = 0; i < p[x].size(); i++) { 14 int y = p[x][i]; 15 if (!check[y]) { 16 dfs(y); 17 } 18 } 19 } 20 21 int main() { 22 ios_base::sync_with_stdio(false); 23 cin.tie(0); 24 25 int n, m; 26 cin >> n >> m; 27 for (int i = 0; i < m; i++) { 28 int u, v; 29 cin >> u >> v; 30 p[u].push_back(v); 31 p[v].push_back(u); 32 } 33 int ans = 0; 34 for (int i = 1; i <= n; i++) { 35 if (!check[i]) { 36 c.clear(); 37 dfs(i); 38 bool flag = true; 39 for (int k = 0; k < c.size(); k++) { 40 if (p[c[k]].size() != 2) { 41 flag = false; 42 break; 43 } 44 } 45 if(flag) 46 ans++; 47 } 48 } 49 cout << ans << endl; 50 return 0; 51 }