#include <iostream>
#include<algorithm>
int find(int num[],int n,int x)
{
int low,high,mid;
low=0;high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(num[mid]==x)
return 1;
else if(num[mid]<x)
low=mid+1;
else if(num[mid]>x)
high=mid-1;
}
return -1;
}
int num[50005];
using namespace std;
int main()
{
int n,x,i,j,sign,sum;
while(cin>>x>>n)
{
sign=sum=0;
for(i=0;i<n;i++)
cin>>num[i];
sort(num,num+n);
for(i=0;i<n;i++)
{
if(find(num,n,x-num[i])==1&&num[i]<x-num[i])
{
sign=1;
cout<<num[i]<<" "<<x-num[i]<<endl;
}
}
if(sign==0)
cout<<"No Solution"<<endl;
}
return 0;
}