#include <bits/stdc++.h>
using namespace std;
#define db double
#define eb emplace_back
#define ldb long double
#define pb push_back
#define ins insert
#define ub upper_bound
#define lb lower_bound
#define ff first
#define ss second
#define pii pair<long long, long long>
#define f3(i, l, r) for(int i = l; i <= r; i++)
#define fd3(i, l, r) for(int i = l; i >= r; i--)
#define sp(x) setprecision(x) << fixed
#define getbit(msk, i) ((msk >> i) & 1)
#define cntbit(msk) __builtin_popcount(msk)
const int oo = 1e18;
int n, m;
vector<long long>adj;
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("LIGHTS.INP", "r", stdin);
freopen("LIGHTS.OUT", "w", stdout);
cin >> n >> m;
int Ans = n + 1;
adj.assign(n, 0);
f3(i, 0, m - 1) {
int u, v;
cin >> u >> v;
--u, --v;
adj[u] |= (1ll << v);
adj[v] |= (1ll << u);
}
map<long long, long long> mp;
f3(i, 0, n - 1) adj[i] |= (1 << i);
int T = n / 2;
/// T = (0, 1, 2, n / 2)
/// P = (n / 2 + 1, ... n - 1)
// cout << T << endl;
for (int i = 0; i < (1 << T); i++) {
long long sum = 0;
for (int j = 0; j < n; j++)
if (getbit(i, j) == 1)
sum ^= adj[j];
/// 4, 5 sang = 00011 = i1
/// 4, 5 sang = 00011 = i2
// cout << i << " " << sum << endl;
/// sum = sau khi thực hiện thao tác lên các bóng đèn
/// msk = i
/// thi ta thu được sum
/// 01010011010101
if (mp.find(sum) == mp.end())
mp[sum] = i;
else {
if (cntbit(i) < cntbit(mp[sum]))
mp[sum] = i;
}
}
/// 6, 7, 8, 9, 10
/// 1, 2, 3, 4, 5
int numP = n - T;
// cout << "PHAI " << numP << endl;
for (long long i = 0; i < (1 << (numP)); i++) {
long long sum = 0;
for (int j = 0; j < n; j++)
if (getbit(i, j) == 1) {
int Riel = j + T;
sum ^= adj[Riel];
}
// cout << i << " " << sum << endl;
/// sum cua P = 01010101
/// Trai gom vo 10101010 = Sum ben trai
long long msk = (1ll << n) - 1;
long long need = msk - sum;
if (mp.find(need) != mp.end()) {
int num = cntbit(mp[need]) + cntbit(i);
Ans = min(Ans, num);
}
}
cout << (Ans == n + 1 ? -1 : Ans);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZGIgZG91YmxlCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgbGRiIGxvbmcgZG91YmxlCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgaW5zIGluc2VydAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgbGIgbG93ZXJfYm91bmQKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIHBpaSBwYWlyPGxvbmcgbG9uZywgbG9uZyBsb25nPgojZGVmaW5lIGYzKGksIGwsIHIpIGZvcihpbnQgaSA9IGw7IGkgPD0gcjsgaSsrKQojZGVmaW5lIGZkMyhpLCBsLCByKSBmb3IoaW50IGkgPSBsOyBpID49IHI7IGktLSkKI2RlZmluZSBzcCh4KSBzZXRwcmVjaXNpb24oeCkgPDwgZml4ZWQKI2RlZmluZSBnZXRiaXQobXNrLCBpKSAoKG1zayA+PiBpKSAmIDEpCiNkZWZpbmUgY250Yml0KG1zaykgX19idWlsdGluX3BvcGNvdW50KG1zaykKCmNvbnN0IGludCBvbyA9IDFlMTg7CmludCBuLCBtOwp2ZWN0b3I8bG9uZyBsb25nPmFkajsKCnNpZ25lZCBtYWluKCkgewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKCWNpbi50aWUoMCk7CglmcmVvcGVuKCJMSUdIVFMuSU5QIiwgInIiLCBzdGRpbik7CglmcmVvcGVuKCJMSUdIVFMuT1VUIiwgInciLCBzdGRvdXQpOwoJY2luID4+IG4gPj4gbTsKCWludCBBbnMgPSBuICsgMTsKCWFkai5hc3NpZ24obiwgMCk7CglmMyhpLCAwLCBtIC0gMSkgewoKCgkJaW50IHUsIHY7CgkJY2luID4+IHUgPj4gdjsKCQktLXUsIC0tdjsKCQlhZGpbdV0gfD0gKDFsbCA8PCB2KTsKCQlhZGpbdl0gfD0gKDFsbCA8PCB1KTsKCX0KCgoKCW1hcDxsb25nIGxvbmcsIGxvbmcgbG9uZz4gbXA7CgoJZjMoaSwgMCwgbiAtIDEpIGFkaltpXSB8PSAoMSA8PCBpKTsKCgogICAgaW50IFQgPSBuIC8gMjsKICAgIC8vLyBUID0gKDAsIDEsIDIsIG4gLyAyKQoKICAgIC8vLyBQID0gKG4gLyAyICsgMSwgLi4uIG4gLSAxKQoKLy8gICAgY291dCA8PCBUIDw8IGVuZGw7CgoJZm9yIChpbnQgaSA9IDA7IGkgPCAoMSA8PCBUKTsgaSsrKSB7CiAgICAgICAgbG9uZyBsb25nIHN1bSA9IDA7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICAgICAgICAgIGlmIChnZXRiaXQoaSwgaikgPT0gMSkKICAgICAgICAgICAgICAgIHN1bSBePSBhZGpbal07CgoKICAgICAgICAvLy8gNCwgNSBzYW5nID0gMDAwMTEgID0gaTEKCiAgICAgICAgLy8vIDQsIDUgc2FuZyA9IDAwMDExICA9IGkyCi8vICAgICAgICBjb3V0IDw8IGkgPDwgIiAiIDw8IHN1bSA8PCBlbmRsOwogICAgICAgIC8vLyBzdW0gPSBzYXUga2hpIHRo4buxYyBoaeG7h24gdGhhbyB0w6FjIGzDqm4gY8OhYyBiw7NuZyDEkcOobgoKICAgICAgICAvLy8gbXNrID0gaQoKICAgICAgICAvLy8gdGhpIHRhIHRodSDEkcaw4bujYyBzdW0KCiAgICAgICAgLy8vIDAxMDEwMDExMDEwMTAxCgogICAgICAgIGlmIChtcC5maW5kKHN1bSkgPT0gbXAuZW5kKCkpCiAgICAgICAgICAgIG1wW3N1bV0gPSBpOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoY250Yml0KGkpIDwgY250Yml0KG1wW3N1bV0pKQogICAgICAgICAgICAgICAgbXBbc3VtXSA9IGk7CiAgICAgICAgfQoKCX0KCgoJLy8vIDYsIDcsIDgsIDksIDEwCgoJLy8vIDEsIDIsIDMsIDQsIDUKCgoJaW50IG51bVAgPSBuIC0gVDsKLy8gICAgY291dCA8PCAiUEhBSSAiIDw8IG51bVAgPDwgZW5kbDsKCWZvciAobG9uZyBsb25nICBpID0gMDsgaSA8ICgxIDw8IChudW1QKSk7IGkrKykgewoKICAgICAgICBsb25nIGxvbmcgc3VtID0gMDsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykKICAgICAgICAgICAgaWYgKGdldGJpdChpLCBqKSA9PSAxKSB7CiAgICAgICAgICAgICAgICBpbnQgUmllbCA9IGogKyBUOwogICAgICAgICAgICAgICAgc3VtIF49IGFkaltSaWVsXTsKICAgICAgICAgICAgfQovLyAgICAgICAgY291dCA8PCBpIDw8ICIgIiA8PCBzdW0gPDwgZW5kbDsKICAgICAgICAvLy8gc3VtIGN1YSBQID0gMDEwMTAxMDEKCgogICAgICAgIC8vLyBUcmFpIGdvbSB2byAxMDEwMTAxMCA9IFN1bSBiZW4gdHJhaQoKCiAgICAgICAgbG9uZyBsb25nIG1zayA9ICgxbGwgPDwgbikgLSAxOwoKICAgICAgICBsb25nIGxvbmcgbmVlZCA9IG1zayAtIHN1bTsKCiAgICAgICAgaWYgKG1wLmZpbmQobmVlZCkgIT0gbXAuZW5kKCkpIHsKCiAgICAgICAgICAgIGludCBudW0gPSBjbnRiaXQobXBbbmVlZF0pICsgY250Yml0KGkpOwoKICAgICAgICAgICAgQW5zID0gbWluKEFucywgbnVtKTsKCiAgICAgICAgfQoKCX0KCiAgICBjb3V0IDw8IChBbnMgPT0gbiArIDEgPyAtMSA6IEFucyk7CglyZXR1cm4gMDsKfQo=