Main.cpp: In function 'int solve(int, int, int)':
Main.cpp:19:69: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
19 | if(v[i][j] == '#') ret = min(ret , solve(i,j+1,mask|(1<<j)) + (1-(mask>>j)&1));
| ~^~~~~~~~~~
Main.cpp:24:78: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
24 | else if(k + 2 == m) ret = min(ret , solve(i+1,0,off(mask,k,m-1)|(1<<m-1)) + ((1-((mask>>k+1)&1))&(v[i][k+1]=='#')) + 1);
| ~^~
Main.cpp:24:98: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
24 | else if(k + 2 == m) ret = min(ret , solve(i+1,0,off(mask,k,m-1)|(1<<m-1)) + ((1-((mask>>k+1)&1))&(v[i][k+1]=='#')) + 1);
| ~^~
Main.cpp:25:63: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
25 | else ret = min(ret , solve(i,k+2,off(mask,j,k) | (1<<k+1)) + ((1-((mask>>k+1)&1))&(v[i][k+1]=='#')) + 1);
| ~^~
Main.cpp:25:83: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
25 | else ret = min(ret , solve(i,k+2,off(mask,j,k) | (1<<k+1)) + ((1-((mask>>k+1)&1))&(v[i][k+1]=='#')) + 1);
| ~^~