#include<bits/stdc++.h>
using namespace std;
int n;
char ch[110][110];
int ans[4][2]; 
int main(){
    cin>>n;
    for (int i=1;i<=n;i++)
        for (int j=1;j<=n;j++)
            cin>>ch[i][j];
    for (int i=0;i<4;i++)
        ans[i][0]=ans[i][1]=0;

    int x1,y1,x2,y2,x3,y3,x4,y4;
    double len_sq,max_len_sq=0;
    for(x1=1;x1<=n;x1++){
        for(y1=1;y1<=n;y1++){
            if(ch[x1][y1]!='#')continue;

            for(x2=1;x2<=n;x2++){
                for(y2=1;y2<=n;y2++){
                    if(ch[x2][y2]!='#')continue;
                    if(x1==x2&&y1==y2)continue; 
                    int dx=x2-x1;
                    int dy=y2-y1;
                    x3=x1-dy;
                    y3=y1+dx;
                    x4=x2-dy;
                    y4=y2+dx;

                    // 检查顶点是否在矩阵范围内
                    if(x3<1||x3>n||y3<1||y3>n)continue;
                    if(x4<1||x4>n||y4<1||y4>n)continue;

                    // 检查另外两个顶点是否为 '#'
                    if(ch[x3][y3]=='#'&&ch[x4][y4]=='#'){
                        len_sq=dx*dx+dy*dy;
                        // 更新最大正方形
                        if(len_sq>max_len_sq){
                            max_len_sq=len_sq;
                            ans[0][0]=x1;
                            ans[0][1]=y1;
                            ans[1][0]=x2;
                            ans[1][1]=y2;
                            ans[2][0]=x3;
                            ans[2][1]=y3;
                            ans[3][0]=x4;
                            ans[3][1]=y4;
                        }
                    }
                }
            }
        }
    }
    for(int i=0;i<4;i++){
        cout<<ans[i][0]<<" "<<ans[i][1]<<endl;
    }
    return 0;
}