废弃居民点的废墟像一片被遗忘的墓地。
坍塌的砖墙斜插在雪地里,露出锈蚀的钢筋。半座二层小楼的楼板悬着,随时可能砸下来。烧成空壳的卡车趴在路中央,车窗黑洞洞的,像没有眼珠的眼眶。
谢尔盖趴在那辆卡车后面已经六个小时。
身下的雪被他体温捂化了一层,又结成冰,冰上又落新雪。
他的膝盖以下完全失去知觉,但他没有动。他的耳朵在听。
砖墙在凌晨降温时会发出轻微的咔咔声,那是冻胀的泥灰岩在收缩。
锈蚀的铁皮被风吹动时,频率和人走动的沙沙声不同。铁皮会持续振动,人只会响一下。
积雪从倾斜的屋面滑落时,落地会先有闷响,然后是雪块碎裂的轻响,像捏碎一块干面包。
所有的声音,他都在听。
列昂尼德趴在他右侧五米外,身子缩在一个弹坑里。他冻得嘴唇发紫,但不敢搓手。
他也在听,只是他不知道要听什么。他只知道上尉在听。
上尉已经这样趴了六个小时,没有换过姿势。
天亮得慢,像一层一层揭下来的纱布。
第一缕灰白的光照进废墟时,谢尔盖右手食指,在扳机护圈上敲了两下。
信号:开始。
列昂尼德把观测镜对准废墟东侧那片倒塌的砖墙。
那里有阿斯特拉人昨天留下的痕迹,是一个用残墙和铁板搭成的射击位,位置刁钻,视野开阔,刚好能控制这片废墟的东进路线。
但他知道那里没人。那是昨天的事。
今天,他们要找的,是那些看不见的人。
…………
爱蜜莉雅也在听。
她潜伏的位置在废墟西侧,一堵半塌的砖墙后面。砖墙的厚度刚好够挡住子弹,但不够挡住声音。
她选择这里,正是因为这道墙会反射声音。
砖墙和冻土对枪声的反射不一样。
冻土硬,反射回来的声音干脆,尾音短,像拍巴掌。砖墙软,表面粗糙,反射声闷,尾音拖长,像拍棉被。
同样的枪声,在不同掩体后面开火,传到对面猎人的耳朵里,会有细微的差别。
她要用这些差别,织一张网。
格奥尔格在她左侧三十米外,趴在一个废弃的地窖入口。那个位置是她选的,三面有墙,一面开口,开口朝向她。
他的任务是开枪,朝不同的方向打,打完之后立刻缩回去。
“打完之后,往地窖里滚。”她昨晚跟他说。“别探头看,别管打没打中。你的命不在那颗子弹上,在那三秒里。”
格奥尔格知道。三秒,是子弹飞过去、声音传回来、对面那个猎人完成判断的时间。
…………
废墟东侧,谢尔盖的耳朵忽然动了一下。
极其细微,像兔子的耳朵在草丛里转向。
列昂尼德看见了,心跳漏了一拍。他不敢出声,只用余光扫向上尉的方向。
谢尔盖的右手食指在扳机护圈上敲了三下。
三下。意思是:有动静,但不确定方向。
列昂尼德屏住呼吸。
三十秒后,一声枪响从废墟西侧传来。
单发。清脆。七六二口径。
子弹打在距离谢尔盖大约一百五十米外的一截断墙上,砖屑纷飞。
列昂尼德本能地想把观测镜转向那个方向,但上尉事先交代过:听见枪声不许转头。转头会带动肩膀,肩膀会带动积雪,积雪会暴露位置。
他硬生生忍住。
枪声在废墟里回荡。
撞上东侧那排砖墙,弹回来。撞上北侧那堆坍塌的楼板,再弹回来。撞上南侧那辆卡车残骸,又弹回来。
最后混成一片嗡嗡的余音,像一群看不见的蜜蜂在废墟上空盘旋。
谢尔盖的眼睛闭上了。
他在听余音。
第一声回响来自东侧砖墙,间隔零点三秒,声音清脆,那是冻土反射。
第二声回响来自北侧楼板,间隔零点五秒,声音闷,那是混凝土反射。
第三声回响来自南侧卡车,间隔零点七秒,声音脆中带杂音,那是铁皮反射。
三声回响,三个方向,三种材质。
开枪的人在哪儿?
如果是西侧,子弹应该先撞上西侧那些建筑,然后才传过来。
可是西侧那些废墟,那个半座小楼,倒塌的烟囱,那堵有弹孔的砖墙……它们反射的声音呢?
他等了五秒。
没有。
开枪的人选的位置很刁钻,他的前方,可能没有能反射声音的建筑。或者,那些建筑刚好在他身后,声音被挡住了。
谢尔盖睁开眼睛,向右偏了偏头。
列昂尼德看到那个动作,心脏又漏了一拍。上尉从不轻易偏头。偏头,意味着他需要更精确的方向判断。
谢尔盖的目光扫过废墟西侧,最后落在那堵有弹孔的砖墙上。
墙后面是什么?一个地窖?一片空地?还是一双正在瞄准他的眼睛?
他的右手食指在扳机护圈上敲了两下。
意思是:可能确认,继续听。
…………
废墟西侧,爱蜜莉雅也在听。
枪声是从格奥尔格的位置传过来的。她知道那颗子弹打在哪,打在东侧那截断墙,她指的位置。
格奥尔格打完之后应该已经缩回地窖,现在那里什么都没有。
她在听的是回响。
不是格奥尔格枪声的回响。
是那个猎人听到枪声之后,可能发出的任何声音。哪怕只是一声呼吸,一声衣服摩擦,一声枪栓拉动。
但她什么也没听到。
那个位置,那片卡车残骸后面,静得像座坟。
她忽然意识到一件事。
如果那个猎人真的在那里,如果他真的像她推测的那样能用耳朵定位,那他为什么不动?
他听到了枪声。他知道方向。他应该已经瞄准了格奥尔格的位置。但他没有开枪。
为什么?
除非……他在等第二枪。他在等两颗子弹的声纹,确定开枪的人是不是同一个,确定有没有第二个射手。
她的猜测对了。他是在测绘。测绘这片废墟的声学地图,也测绘她。
但他比她想象的更有耐心。
他在等她犯错,等格奥尔格忍不住开第二枪,等声纹暴露他们的数量、位置、习惯。
…………
中午,太阳从云层后面露出来,在雪地上投下刺眼的反光。
谢尔盖的位置终于换了一次。他从卡车残骸后面移到东侧那排砖墙下面,移动的过程用了两个小时,每爬一米,停二十分钟。
列昂尼德也跟着他移动,爬一步,停一步。
新位置比卡车后面好一些,砖墙下面有一个天然形成的凹坑,刚好能容两个人。
凹坑底部铺着一层碎砖,碎砖上面是雪,雪上面是一块不知道从哪飞来的铁皮。
谢尔盖趴下之后,右手食指在铁皮上轻轻敲了一下。
“当——”
铁皮发出一声脆响。
列昂尼德愣了一下。上尉在干什么?这不等于告诉敌人自己在这里吗?
但他没问。上尉这么做,一定有理由。
五分钟后,废墟西侧响起第二声枪响。
这次子弹打得更近,落在谢尔盖刚才趴过的卡车残骸旁边,距离不到五十米。砖屑打在车身上,发出密集的噗噗声。
谢尔盖没有动,甚至没有闭眼。
他在听余音。
这一次,他听到了不一样的东西。
第二声枪响的声纹,和第一声不一样。
第一声干脆,尾音短,说明开枪的人手指用力均匀,呼吸平稳。第二声略钝,尾音略长,说明开枪的人换了一只手?还是换了枪?
不对。
是两个人。
他们用同一型号的步枪,同一批次的弹药,在不同的位置,朝不同的方向开枪。
两颗子弹的声音在空中混在一起,传到他的耳朵里时,已经分不清哪一声来自哪个方向。
这就是他们的战术。
两个人,两支枪,同时击发。让他听不准,算不对,找不到。
谢尔盖的嘴角动了一下。
那不是笑。是猎人看到猎物挣扎时,一种赞赏的认可。
…………
太阳又偏西了,光线开始变暗。
废墟里那些枪声再也没有响起。阿斯特拉人只打了两枪,上午一枪,下午一枪,间隔五个小时,位置完全不一样。
他们在告诉他:我们有两个射手,我们很耐心,我们不会按你的节奏来。
谢尔盖开始移动。
不是撤退,是沿着那排砖墙向南,朝废墟深处爬。
他爬得很慢,每爬两米就停下来听一会儿,听积雪有没有因为他的爬行而改变声音,听远处的废墟有没有因为他的移动而传出回声。
列昂尼德跟在他后面,心跳得很快。
他不明白上尉在干什么。
天快黑了,该撤了。但上尉在往里走,往那片不知道藏着多少敌人的废墟深处走。
他想问,但他不敢开口。
开口的代价,可能是一颗子弹。
…………
天黑下来之后,谢尔盖终于停了。
他停的地方,是废墟中央一个半塌的地下室入口。入口被一块倾斜的混凝土板盖住,只剩一条不到半米宽的缝隙。缝隙里面黑洞洞的,什么都看不见。
谢尔盖打了个手势。进去。
列昂尼德犹豫了一下,但还是一咬牙,侧着身子钻了进去。
地下室里很黑,但比外面暖和。空气里有霉味和铁锈味,还有一股陈年的硝烟味。
列昂尼德摸索着找到一面墙,背靠着坐下,大气不敢出。
几秒钟后,谢尔盖也钻了进来。
两个人挤在地下室里,谁也没说话。外面开始起风了,风灌进缝隙,发出呜呜的声响,像有人在哭。
过了很久,很久,久到列昂尼德以为上尉睡着了。
谢尔盖忽然开口。
“你算。”
列昂尼德愣了一下:“什么?”
“今天的枪声。第一枪和第二枪,位置、方向、距离。你算。”
列昂尼德手心冒汗。他拿出那本弹道日志,翻开今天那一页。
上面只有他随手记的几个数字:第一枪,上午九点十七分,方向西偏北,距离约三百米。第二枪,下午两点四十分,方向西偏南,距离约两百米。
他闭眼回想那两声枪响,回想子弹打在砖墙上,打在卡车旁边的声音,回想余音在废墟里回荡的时长。
第一枪的回响持续了大约四秒,最后一声回响来自东侧那排砖墙。
声音从开枪点到东侧砖墙,距离大约三百五十米,来回七百米,声音每秒走三百三十米,两秒多一点。
加上第一次回响之后继续反射的时间,差不多四秒。
那么开枪点,应该在……
他用铅笔在纸上画了几条线,手在抖。
第二枪的回响更短,只有不到三秒。子弹打得更近,回响反射的路径更短。开枪点在……
他又画了几条线,线在纸上交错成一个不规则的三角形。
他抬起头,看着谢尔盖。地下室里太黑,他看不见上尉的脸,只能看见一个模糊的轮廓。
“第……第一枪,在废墟西侧,那堵有弹孔的砖墙后面。”他的声音压得很低,但止不住地抖。
“第二枪,也在西侧,但更靠南,可能是那个地窖附近。两枪位置,相距……大约五十米。”
他顿了顿,声音更低了。
“误差,应该……八米左右。”
谢尔盖没有说话。
沉默持续了十几秒。列昂尼德的心悬在嗓子眼。他算错了吗?误差太大了吗?
“上尉?”他试探着问。
谢尔盖开口了。
“够了。”
两个字。
列昂尼德愣住了。他等着上尉说“差远了”,等着上尉说“再算”,等着上尉说任何一句能让他知道自己还差得多远的话。
但上尉只说了两个字。
够了。
列昂尼德低下头。黑暗里,他忽然觉得眼眶有点热。不是因为被表扬,这不是表扬,上尉不会表扬任何人。
是因为他忽然意识到,上尉说“够了”的意思,不是“你算对了”,而是“你可以独立了”。
他抬起头,想说什么,却发现谢尔盖已经侧过身,面朝地下室的入口,一动不动。
外面的风更大了。风灌进缝隙的声音像有人在哭,又像有人在笑。
列昂尼德张了张嘴,最后什么也没说。他低下头,把那行“误差八米”的记录完完整整地写进日志。
写完之后,他又在下面加了一行小字,字小得几乎看不清:
“上尉说,够了。”
…………
同一时刻,废墟西侧,那堵有弹孔的砖墙后面三十米处,爱蜜莉雅也在记录。
她把今天的两枪,两声回响,以及对面可能的位置,都画在一张皱巴巴的纸上。画完之后,她盯着那张纸看了很久。
两个方向,两枪,两次回响分析的结果指向同一个结论。
对面有两个人。一个负责听,一个负责记。听的那个是猎人,记的那个是眼睛。
格奥尔格趴在她旁边,用气声问:“他还在吗?”
爱蜜莉雅摇了摇头。她不知道。她只知道,今天这场无声的对峙,谁也没赢,谁也没输。
她制造了声纹陷阱,他听出了是两个人。她试探了他的位置,他反试探了她的耐心。
打了个平手。
但平手意味着,下一次,他会有准备。他不会再被两声枪响迷惑,他会用更精准的方式,分辨出两个射手的声音特征,比如谁扣扳机更快,谁的枪膛磨损更严重,谁的呼吸更沉。
她需要更复杂的陷阱。
需要不同的材质,不同的角度,不同的距离,让那些声音混在一起,乱成一团,让他即使听出来了,也来不及判断。
她把那张纸折好,塞进内衬口袋。
…………
三天后,洛连方面的命令下来了。
一份从师部发来的加密电文,辗转送到谢尔盖手上。列昂尼德在旁边看着,只见电文上只有几行字:
“镰刀计划已批准。谢尔盖上尉小组编入行动序列。目标:清除该区域所有阿斯特拉狙击节点。期限:七日。执行方式:自由裁量。”
列昂尼德看完,心跳漏了一拍。
镰刀计划。
这不是普通的反狙击任务,这是系统性清除。他们不再是偶尔出猎的猎人,而是被编入正式作战序列的“镰刀”。
目标不是一两个人,而是所有节点。
谢尔盖把电文折好,塞进口袋。
“走。”他说。
列昂尼德愣了一下:“去哪?”
“里面。”谢尔盖看着废墟深处,那片他们从未涉足过的、堆满断壁残垣的区域。
“镰刀要割的地方,还没到。”
列昂尼德跟上他的脚步,走了几步,忽然想起什么。
“上尉,”他压低声音,“今天那两声枪响,我算的位置……”
谢尔盖没有回头。
“记住就行。”
列昂尼德低下头,把那三个字嚼了一遍。
记住就行。
他不知道谢尔盖是说记住数据,还是记住这种在黑暗里靠着一点声音,算出敌人位置的战栗感。
风又起了。两个人的身影消失在废墟深处。
身后,那堵有弹孔的砖墙静静立着,上面有两个弹孔。一个是格奥尔格打的,一个是从前不知道谁留下的。
弹孔边缘结了冰,在夕阳下闪着微光,像两只半闭的眼睛。