#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
const int maxn=100005;
struct node
{
int index1;//存储下标
int tag;//tag=1表示已有前面已有一个相同的数
int index2;
node(int i,int j,int f):index1(i),index2(j),tag(f){}
};
int main()
{
int n,t,a;
while(scanf("%d%d",&n,&t)!=EOF)
{
int arr[n];
map<int,node >m;//关键字为数字,键值为下标
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
if(m.find(arr[i])->second.tag!=1) m.insert(pair<int,node>(arr[i],node(i,0,1)));
else if(m.find(arr[i])->second.index2==0)//已经有且只有一个数了
m.find(arr[i])->second.index2=i;
}
for(int i=0;i<n;i++)
{
int a=arr[i];
if(m.find(t-a)!=m.end())
{
if(a==t-a)
printf("%d %d\n",m.find(a)->second.index1,m.find(a)->second.index2);
else
printf("%d %d\n",i,m.find(t-a)->second.index1);
break;
}
}
}
return 0;
}